使用 CSS 3D 转换从 DOM 对象接收转换后的鼠标事件数据 [英] Receiving transformed mouse event data from DOM objects with a CSS 3D transform
本文介绍了使用 CSS 3D 转换从 DOM 对象接收转换后的鼠标事件数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
javascript 鼠标事件中当前是否有任何数据可以让我轻松查找或计算相对于转换元素的 3D 空间的鼠标位置?
为了直观地说明,
左边是没有3d矩阵的div,右边是3d变换后的div.o
是鼠标事件的起源
<代码> +/|/|+-----+ + ||||||○|=>|○|||||+-----+ + | ||+
在下面的脚本中,单击 div 中相同的像素将报告一个 event.layerX
,它位于文档/屏幕的 2d 转换空间中.
我知道,但对解析 div 的 matrix3d 并使用它乘以事件位置以发现这一点的前景并不感到兴奋,但是在实际实现中,div 将具有更复杂的转换,这将需要对多个对象的每一帧都完成,我担心会带来开销......如果这是我唯一的选择,我当然不介意帮助它.
<html lang="zh-cn"><头><meta charset='utf-8'><title></title><style type="text/css" media="screen">身体 {背景颜色:#FFF;}图片{位置:绝对;}#主要的 {边距:0;-webkit-透视:1800;}#卡片 {位置:相对;边距:0 自动;宽度:420px;高度:562px;-webkit-transform-style: 保留-3d;-webkit-transform-origin:中心中心;}#card .page {位置:绝对;-webkit-transform-style: 保留-3d;-webkit-transform-origin:左中心;}#card .page .face {位置:绝对;宽度:100%;高度:100%;-webkit-transform-style: 平面;}#card .page .face.front {z-索引:1;-webkit-backface-visibility:隐藏;}#card .page .face.back {-webkit-transform:rotateY(180deg) translateX(-420px);}</风格>头部><身体><div id='main'><div id='card'><div class='page draggable'><div class='face front'><img src='front.jpg'/>
<div class='face back'><img src='back.jpg'/>