我有这个小提琴http://jsfiddle.net/JqBZb/193/我希望我的对象仅在按下红色方块时移动,但是当用户释放鼠标时我无法删除 mousemove 操作。在那之后它仍然会移动。
HTML:
<div class="pointer">
<div class="marker"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.marker {
background:#ED1C24;
height:2px;
right:0;
position:absolute;
top:35px;
width:7px
}
.pointer {
height:72px;
position:absolute;
top:82px;
width:72px;
border:1px solid red;
left:100px;
}
Run Code Online (Sandbox Code Playgroud)
爪哇脚本:
var img = $('.pointer');
var offset = img.offset();
function mouse(evt) {
var center_x = (offset.left) + (img.width() / 2);
var center_y = (offset.top) + (img.height() / 2);
var mouse_x = evt.pageX;
var mouse_y = evt.pageY;
var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y);
var degree = (radians * (180 / Math.PI) * -1) + 90;
img.css('-moz-transform', 'rotate(' + degree + 'deg)');
img.css('-webkit-transform', 'rotate(' + degree + 'deg)');
img.css('-o-transform', 'rotate(' + degree + 'deg)');
img.css('-ms-transform', 'rotate(' + degree + 'deg)');
}
img.mousedown(function (e) {
$(document).mousemove(mouse);
}).mouseup(function (e) {
e.stopPropagation();
})
Run Code Online (Sandbox Code Playgroud)
此答案提供了原始旋转脚本/sf/answers/716470891/
将其添加到您的脚本中...
$(document).mouseup(function() {
$(document).off("mousemove", mouse);
});
Run Code Online (Sandbox Code Playgroud)
mousemove每当您释放鼠标按钮时,它就会解除事件处理程序的绑定。
http://jsfiddle.net/JqBZb/201/
我也将其更新到更高版本的 jQuery,以适应off().
| 归档时间: |
|
| 查看次数: |
13638 次 |
| 最近记录: |