【问题标题】:Scroll content vertically with jquery.animate and jquery.scrolltop使用 jquery.animate 和 jquery.scrolltop 垂直滚动内容
【发布时间】:2011-12-19 03:57:46
【问题描述】:

我正在处理这个plugin,它会滚动一个元素以显示隐藏的内容。

但我无法做到,例如,

  1. 当我滚动内容以达到 数字 7,8 并且我想向后滚动上一步只是为了达到 数字 5,6 但它滚动最多达到数字 1,2

  2. 在错误地到达 数字 1,2 后,当我再次单击 more 按钮时,它会直接向下滚动以到达 数字 8,9 .

我该如何解决?

这是插件代码,

(function($){

   $.fn.extend({ 

        scroll_up_down: function(options) {

            var defaults = {
                associateScroller:           '.less',
                scrollTarget:                '.items-thread',
                scrollAmount:                40,
                callback:                     function() {}
            }

            var options =  $.extend(defaults, options);
            var o = options;
            var scroll_amount =  o.scrollAmount;
            var associate_scroller = o.associateScroller


            var $cm = this.click(function(e){

                // Set the varible.
                var object = $(this);
                var scroll_target = $(o.scrollTarget);

                scroll_target.animate({scrollTop:scroll_amount}, 500);

                scroll_amount += o.scrollAmount;


                return false;

            });

            var $cm_2 = $(associate_scroller).click(function(e){

                // Set the varible.
                var scroll_target = $(o.scrollTarget);

                scroll_target.animate({scrollTop:-scroll_amount}, 500);
                scroll_amount -= o.scrollAmount;


                return false;
            });



        }
    });

})(jQuery);

【问题讨论】:

    标签: jquery jquery-animate scrolltop


    【解决方案1】:

    问题是变量scroll_amount。首先,它总是会滚动回顶部,因为您传入的是负数!滚动量。你不想那样做。其次,您应该在动画之前而不是之后修改滚动量。

    http://jsfiddle.net/CxbYf/2/

    scroll_amount = ...;
    scroll_target.animate({scrollTop:scroll_amount}, 500);
    

    【讨论】:

    • 非常感谢您的更正,mrtsherman。我刚刚遇到另一个问题 - 当滚动条到达内容底部时,如何阻止 scroll_amount 增加?谢谢!
    • 抱歉,当滚动条位于或到达内容顶部时,如何阻止 scroll_amount 减小?谢谢。
    • 您需要在递增或递减之前检查scroll_amount 值。 scrollTarget[0].scrollHeight 将为您提供上限,0 为您提供下限。这有一个小错误,但应该足以让您现在解决问题。 jsfiddle.net/CxbYf/4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多