禁用动画jquery函数X秒

时间:2014-02-24 08:22:16

标签: jquery

我正在使用animate jQuery函数在另一个div内上下滑动。

$(document).ready(function() {

  $(".box2text").hover(
    //on mouseover
    function() {
      $(this).animate({   
        height: '+=130' //adds 250px
        }, 'slow' //sets animation speed to slow
      );
    },
    //on mouseout
     function() {
      $(this).animate({
        height: '-=130px' //substracts 250px
        }, 'slow'
      );
    }
  );
});

我想要做的是,在第一次运行之后禁用X秒的功能,然后再次启用它。 关于如何做到的任何想法?

2 个答案:

答案 0 :(得分:0)

以下代码将在加载DOM后为每个myFunction()执行5 sec方法。您可以随时调用相同的功能,如hover , onclick , mouseenter等...

尝试在我的代码中实现你的逻辑。

var enable = true ;
var timer ;

$(document).ready(function() {

    myFunction();
    timer = setInterval(function(){myFunction();},5000)

});

function myFunction(){

    if(enable == true ){
        //do your stuff
        enable = false;

    }else{
        //do your stuff
        enable = true;
    }

}

您也可以通过

停止执行
 clearInterval(timer);

如果您需要任何帮助,请告诉我。谢谢。

答案 1 :(得分:0)

我建议您考虑使用mouseenter和mouseleave方法 在这里,您可以自己尝试:DEMO

考虑这个例子:当鼠标输入开始超时(每次执行一次):在2000ms之后为球设置动画。

var animateBall = function() {
    $('#ball').animate({
       left: "300px"
    }, 200). animate({
       left: "0px"
    }, 200);
}

$("button").mouseenter(function(){
   setTimeout(function() {
       animateBall();
    },2000);
}).mouseleave(function(){ 
    /* do something else */
});