jquery .animate() 在滚动时一遍又一遍地重复

标签 jquery scroll jquery-animate

嗨,我有一个“返回顶部”按钮,一旦浏览器滚动一定距离,该按钮就会淡入并呈现动画。问题是每次浏览器被滚动时它都会一次又一次地重复 .animate() 。有什么想法如何在动画发生一次后停止它吗?干杯

这是代码:

  $('.up_arrow').hide();

  // fade in up arrow 
  $(function () {
  $(window).scroll(function () {
    if ($(this).scrollTop() > 100) {
        $('.up_arrow').fadeIn(2000, 'swing')

        .animate ({
           opacity: 1,
           left: '+=30'
        },
        {
           duration: '2000',
           easing: 'swing',
           queue: false
        }           
        );

        } else {
        $('.up_arrow').fadeOut(2000, 'swing');
        }
});
}); 

最佳答案

$(function () {
    var stop = false;
    $(window).scroll(function () {
        if ($(this).scrollTop() > 100 && stop == false) {
            $('.up_arrow').fadeIn(2000, 'swing')
                .animate({
                opacity: 1,
                left: '+=30'
            }, {
                duration: '2000',
                easing: 'swing',
                queue: false
            });
            stop = true;
        } else {
            $('.up_arrow').fadeOut(2000, 'swing');
            stop = false;
        }
    });
});

关于jquery .animate() 在滚动时一遍又一遍地重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571914/

相关文章:

当用户放大或缩小时,jQuery 动画在 Chrome/Safari 上表现不佳

javascript - jQuery 从数据属性获取路径

javascript - 鼠标悬停事件控制淡入淡出

c#:如何确定当前是否显示了 Scrollable 控件的 ScrollBar?

html - 仅具有水平滚动的 Div 不起作用

javascript - 如何使用 animate 和scrollTop 将浏览器窗口的滚动条或 div 滚动条设置为增量滚动?

javascript - 根据 id 比较两个数组并根据值返回一个新数组

jquery - 阻止用户通过按 Enter 键提交表单

Android ListView 滚动到顶部时自动加载更多数据

javascript - 如何在 jQuery 中创建链式延迟动画序列?