【发布时间】:2014-09-29 05:37:46
【问题描述】:
专家,
我创建了一个图像(#hand)移动以及鼠标光标(在 div 内时)。这部分工作正常,除非有一个变换旋转到#handWrap div。手形图像位置在旋转的父 div 上移动不同。我知道,在将 e.pageX 和 e.pageY 位置直接传递给手之前,我们应该进行某种计算,但找不到合适的修复方法。如果有人可以提供帮助,将不胜感激。
HTML:
<div id="handWrap">
<img id="hand" src="http://s30.postimg.org/s4f5oy9dd/hand.png"/>
</div>
CSS:
* { margin:0; padding:0; }
#handWrap {
position:absolute;
top:40px;
left: 80px;
width:200px;
height:300px;
overflow:hidden;
border:1px solid red;
/* try uncommenting below, hand position not being accurate */
/* transform: rotate(-10deg); */
cursor:pointer;
}
#hand{
position: absolute;
transform: rotate(10deg);
}
jQuery:
$("#handWrap").on("mousemove",function(e){
// I played with sin/cos/half-width etc, but doesn't worked
$('#hand').css({'left':e.pageX-130,'top':e.pageY-44});
});
JSfiddle 演示在这里: 在jsfiddle中,尝试取消注释#handWrap中的transform rotate,然后运行,我们可以看到鼠标光标的手部移动不准确
http://jsfiddle.net/y4pfd7u2/4/
提前致谢!
【问题讨论】:
-
我尝试过 transform-origin 属性但没有用,w3schools.com/cssref/css3_pr_transform-origin.asp
标签: jquery css-transforms