Jquery 只制作一次动画
我使用jQuery.animate()移动项目一次,但它似乎以100px的增量移动了多次。是因为老鼠爬过去了吗Jquery 只制作一次动画,jquery,Jquery,我使用jQuery.animate()移动项目一次,但它似乎以100px的增量移动了多次。是因为老鼠爬过去了吗 var ww = $(window).width(); $(document).on('mouseover', '#myTarget', function () { var dp = $(this).offset().left; if ((ww - dp) < 150) { $('.myDiv.active').animate({left
var ww = $(window).width();
$(document).on('mouseover', '#myTarget', function () {
var dp = $(this).offset().left;
if ((ww - dp) < 150) {
$('.myDiv.active').animate({left:'-=100px'},500);
}
});
var ww=$(窗口).width();
$(document).on('mouseover','#myTarget',函数(){
var dp=$(this).offset().left;
如果((ww-dp)<150){
$('.myDiv.active').animate({left:'-=100px'},500);
}
});
鼠标悬停在目标上时,会重复发送鼠标悬停事件。您可能需要mouseenter和mouseleave使用
$(document).one('mouseover','myTarget',函数(){
var dp=$(this).offset().left;
如果((ww-dp)<150){
$('.myDiv.active').animate({left:'-=100px'},500);
}
});
将其更改为
$(document).on('mouseenter','#myTarget',函数(){
更好。每次鼠标进入或离开元素或其子元素时,都会触发一个mouseover
事件。这不会发生在mouseenter
上。显示了这一点
有关提供的示例的类似问题和源代码,请参阅。是的,这是因为鼠标悬停。您的实现似乎没有问题。请检查:.one()很好,但我需要能够再次调用此函数,因此在这种特殊情况下,mouseenter可以节省时间。感谢您的推荐。one(),我从未用过,但它有很大的潜力。好的,很好,误解了你的问题
$(document).one('mouseover', '#myTarget', function () {
var dp = $(this).offset().left;
if ((ww - dp) < 150) {
$('.myDiv.active').animate({left:'-=100px'},500);
}
});