Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 只制作一次动画_Jquery - Fatal编程技术网

Jquery 只制作一次动画

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

我使用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:'-=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);
  }
});