在 CSS3D 元素上查找屏幕坐标的局部坐标
Find local coordinates of a screen coordinate on CSS3D element
>我有一个网页,其中包含一个具有3D透视转换的元素。
我想为给定的屏幕坐标找到该转换对象上的相对坐标。或者换句话说,我想做基本上是命中检测的事情:在元素上找到一个与鼠标坐标相对应的相对坐标。
在Chrome/Safari中,找到元素的透视变换矩阵是微不足道的。我相信我需要做一些事情,比如将屏幕坐标乘以透视矩阵的倒数,但遗憾的是细节对我来说丢失了。
我创建了一个Chrome/Safari/Webkit兼容的jsFiddle,其部分实现缺少矩阵数学:http://jsfiddle.net/HT2VQ/
如果存在正确的数学,则在元素上绘制的蓝色甜甜圈将围绕红点。
这是我来自jsFiddle的咖啡脚本:
projectionMat = new WebKitCSSMatrix container.css('-webkit-transform')
window.onmousemove = (e) ->
insideX = e.clientX - container.position().left
insideY = e.clientY - container.position().top
outsideCursor.css
left: e.clientX
top: e.clientY
# Do something with projectionMat / projectionMat.inverse()
# insideX = ??
# insideY = ??
insideCursor.css
left: insideX
top: insideY
我找到了一个适用于Webkit的解决方案,而无需使用webkitConvertPointFromNodeToPage手动进行矩阵数学运算:
point = webkitConvertPointFromPageToNode(container.get(0),
new WebKitPoint(e.clientX, e.clientY))
工作 jsfiddle: http://jsfiddle.net/mlawrie/HT2VQ/5/
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 如何在d3.js中返回路径的y坐标
- 在谷歌地图上获取事件的x,y坐标
- 如何解雇“;铁局部存储负载”;事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何在JS Leatflet绘图插件中获取圆的坐标
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- HTML5获取弧的坐标's结束
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- Javascript用函数return替换局部变量
- 获取用户位置并将坐标保存在数据库中
- fabric js多边形集合坐标
- 使用D3.js和GeoJson在地图上的某些坐标上设置一个小图像
- 如何创建一个谷歌地图地理坐标数组
- 三.js获取具有给定世界方向坐标的场景矢量的对象相对局部方向
- 在 CSS3D 元素上查找屏幕坐标的局部坐标
- 将局部(视口相对坐标)转换为全局(图层坐标)
- 如何将全局坐标转换为局部坐标