jQuery防止onmouseover事件
jQuery prevent onmouseover events
我已经搜索了一段时间了,但还没有结果。我有多个鼠标悬停事件与动画。所以我希望能够禁用鼠标悬停事件发生,如果还有其他动画运行..
我一直在玩jQuery.stop()
很多,但不可能使它工作。我实际上不确定在哪里把这个代码在我的函数..
这是我的html与地图:
<img src="assets/menu588x588.png" alt="" usemap="#map" />
<map id="map" name="map">
<area onmouseover="driveTo(330);" shape="poly" coords="93, 264, 2, 270, 7" />
<area onmouseover="driveTo(300);" shape="poly" coords="122, 336, 101, 390" />
<area onmouseover="driveTo(230);" shape="poly" coords="370, 335, 446, 388, 3574" />
</map>
和我的JS函数与一些超时和动画:
function driveTo(new_position){
$(function() {
var pre_position = Number(document.getElementById("pre-position").value);
var goal = 360 - pre_position + new_position;
var $elem = $(".car-box"), degree = pre_position, timer;
rotate(goal);
function rotate(goal) {
$elem.css({ 'transform': 'rotate(' + degree + 'deg)'});
if(new_position < pre_position){
if(goal > 0){
timer = setTimeout(function() {
--goal;
++degree;
rotate(goal);
},5);
}
if(goal === 0){
document.getElementById("pre-position").value = new_position;
}
}
}
});
}
我怕在这些内部函数中有点迷失。
非常感谢您的建议!
试试这个:
var inProgress = false;
function driveTo(new_position){
if(inProgress){
return;
}
$(function() {
inProgress = true;
var pre_position = Number(document.getElementById("pre-position").value);
var goal = 360 - pre_position + new_position;
var $elem = $(".car-box"), degree = pre_position, timer;
rotate(goal);
function rotate(goal) {
$elem.css({ 'transform': 'rotate(' + degree + 'deg)'});
if(new_position < pre_position){
if(goal > 0){
timer = setTimeout(function() {
--goal;
++degree;
rotate(goal);
},5);
}
if(goal === 0){
document.getElementById("pre-position").value = new_position;
inProgress = false;
}
}
}
});
}
相关文章:
- onmouseover事件行为不端
- chrome中的onmouseover(下拉选项标记)事件不起作用-php,javascript
- 在onmouseover事件中更改图像,并为每个事件设置中断/间隔
- 结合onmouseover事件和<a>标签
- Javascript:在每个onmouseover事件之后执行2个函数
- 如何在 JavaScript 中的元素上触发 Onmouseover 事件
- GraphDracula:如何检测onclick和onmouseover事件
- Javascript/Jquery删除和添加'onmouseover'setinterval上的事件
- php代码中的onmouseover和onmouseout事件;不起作用
- onmouseover事件仅在第二次鼠标悬停后才起作用
- onmouseover事件不起作用
- 鼠标传递选项时选择标记事件/使用onmouseover选择选项
- JavaScript 中的 onmouseover 和 onmouseout 事件
- onmouseover在click和mouseout事件之前触发
- onMouseOver,同时按下鼠标左键(事件)
- 如何让onmouseover交换事件一直保持到onmouseout,直到下一个onmousever事件
- 如何通过onmouseover事件停止jquery旋转木马
- 从一系列onMouseOver事件中创建一个循环
- Onmouseover和onmouseout事件在页面加载时触发,而不是在事件时触发
- 使用JavaScript,为什么我的onmouseover事件没有被触发