0

我在我正在开发的网站中添加了一些简单的 jquery,以便在用户滚动到屏幕上的某个点时让 2 个元素滑入视图。动画做了我想要的,但是当我向下滚动到该区域时,就在动画完成之前,它会立即将我带到页面顶部。当我向下滚动时,动画完成了,但它留下了看起来像是在它移动的区域中移动的文本的“副本”。如何阻止页面拍摄到顶部以及如何阻止文本离开它的动画副本?

这是jQuery

$(document).ready(function(){
        $(window).scroll(function(){
            if ($(this).scrollTop() > 1350) {
           $('#managecontent1').animate({left: '0px'},900);
           $('#managecontent2').animate({right: '0px'},900);
       }
            });
    });

这是文本复制的样子

在此处输入图像描述

提前致谢!

4

1 回答 1

0

使用 jQuery.off()分离事件处理程序。

在以下代码.off()中使用:

  • 结合setTimeout()在动画被触发之前临时分离滚动处理程序,以减少滚动处理程序触发的频率
  • 触发动画后永久分离滚动处理程序。

Javascript:

$(function() {
    function scrollHandler() {
        $(window).off('scroll.managecontent');
        if ($(this).scrollTop() > 1350) {
            $('#managecontent1').animate({left: '0px'}, 900);
            $('#managecontent2').animate({right: '0px'}, 900);
        }
        else {
            setTimeout(observeScroll, 200);//Adjust timeout to maximum acceptable value. 200 ms shouldn't be too far off the mark.
        }
    }
    function observeScroll() {
        $(window).on('scroll.managecontent', scrollHandler);
    }
    observeScroll();
});

这可能会也可能不会解决问题。

于 2013-03-07T20:48:00.567 回答