jQuery延迟动画运行两次 - 如何使用Stop?

时间:2015-04-22 10:47:22

标签: javascript jquery

我有一个基本动画:

$(function() {
    $('div').click(function() {  
        var r = this.id;
        $('.fp div').not('#'+r).css({'color':'blue'});
    });
});

<div id="FPbl">text</div>

问题是,我使用的是“onepage”滚动插件,每次加载新部分时都会触发脚本 - 导致上面的文字出现在所有'幻灯片'上

如何使用stop函数,使每个站点加载脚本只运行一次?

2 个答案:

答案 0 :(得分:1)

如果插件刷新页面,那么我们无能为力,但是如果你觉得它触发了这个函数两次,那么使用全局变量作为标志并在动画制作之前检查它。

也使用回调函数

var globalFlag=0; //declare globally
if(globalFlag==0){
$("#FPbl").delay(3000).animate({"opacity": "1"}, 700,function(){
$("#FPbl").delay(2000).animate({"opacity": "0"}, 700); 
globalFlag=1; // change it after required animation is completed
});
}

答案 1 :(得分:0)

1)使用jquery插件, 2)试试这个,

<script type="text/javascript">
$(document).ready(function()
{
$("#FPbl").fadeIn(1000);
setTimeout(function()
{
$("#FPbl").fadeOut(1000);
}, 3000);
});
</script>