javascript - 停止JS动画功能

标签 javascript jquery html css

我有以下脚本,我希望它在动画最后一次移动后停止移动,而只是闪烁/重复。我试过添加一个 .stop 但我运气不太好:

JS:

<script type="text/javascript">
 $(window).scroll( function() {  
    if ( $(window).scrollTop() > 0 ) {  
       loadDiv();  
    }  
});  
function loadDiv() {  
    $('#container-holder').fadeIn('slow', function() {  
        $(this).fadeTo("slow", 1);  
        $('#container, #imagetest1').fadeTo("slow", 1);
        $('#imagetest1').delay(30).animate({'margin-top': '0'}, {duration:0, queue:true});
        $('#imagetest1').delay(30).animate({'margin-top': '-78px'}, {duration:0, queue:true});
        $('#imagetest1').delay(30).animate({'margin-top': '-156px'}, {duration:0, queue:true});
        $('#imagetest1').delay(30).animate({'margin-top': '-234px'}, {duration:0, queue:true});
        $('#imagetest1').delay(30).animate({'margin-top': '-312px'}, {duration:0, queue:true});
    });  
}  
</script>

CSS:

<style>
#background {
width: 200px;
height: 1000px;
border: 1px solid #999;
}
#container-holder {
width: 200px;
height: 200px;
border: 1px solid #999;
visibility: visible;
margin-top: 100px;
}
#container {
width: 160px;
height: 160px;
background-color: #333f;
border: 1px solid #333f;
}
#imagetest1 {
width: 162px;
height: 390px;
background-image: url('http://i811.photobucket.com/albums/zz40/mjl-admin/rainbow.jpg');
border: 1px solid green;
}
#image-container {
width: 10px;
height: 10px;
}
#image1 {
width: 165px;
height: 78px;
background-color: #fff;
overflow: hidden;
}
</style>

HTML:

<div id="background">
<div id="container-holder">
<div id="container">
    <div id="image1"><div id="imagetest1"></div></div>
</div>
</div>
</div>

fiddle :http://jsfiddle.net/fatfrank44/bwbEu/9/

最佳答案

动画一遍又一遍地运行,因为每次触发 window.scroll 事件时它都会重新启动一次。

如果你想让动画只发生一次,你可以使用.one('scroll')附加事件然后立即处理它:

$(window).one('scroll',function () {
    if ($(window).scrollTop() > 0) {
        loadDiv();
    }
});

http://jsfiddle.net/mblase75/nRr2j/

关于javascript - 停止JS动画功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742696/

相关文章:

javascript - 在 laravel 中使用 ajax 显示输入中的数据

javascript - 这是内存泄漏吗?

html - 使用 CSS 动画线性渐变以透明颜色结束

javascript - 打印 html 时调整图像大小

javascript - 自定义 ngModel 指令以支持 jquery 插件中的模型-> View 绑定(bind)

javascript等待子窗口中​​的新页面加载

javascript - 如何防止首次运行后出现警报运行

javascript - 如何循环本地存储以匹配登录输入

javascript - 淡入淡出并在鼠标悬停时停止

javascript - 如何在 javascript 函数中使用 html 标签构建列表