为什么scrollTop只向下滚动一半?

时间:2014-08-21 13:37:35

标签: javascript jquery scrolltop

我在jQuery代码段上有错误,我不是jQuery专家。我有一个滚动div,它将使用以下功能自动滚动。

// When DOM is fully loaded
jQuery(document).ready(function ($) {

    function scroll(speed) {
        $('.shooter-scroller').animate({
            scrollTop: $(document).height() - $('.shooter-scroller').height()
        }, fast, function () {
            $(this).animate({
                scrollTop: 0
            }, speed);
        });
    }

    speed = 15000;

    scroll(speed)
    setInterval(function () {
        scroll(speed)
    }, speed * 2);
});

我需要用这个脚本做两件事,但如果人们可以提供帮助,他们会很乐意帮助。

由于某种原因,滚动停在div的中间位置并且没有显示div中的所有内容,我想让滚动一旦到达底部就重置回内容的顶部。这有可能吗?

任何帮助都会很棒!

小提琴:http://jsfiddle.net/andysimps1985/gn1a2kn7/1/

提前致谢。

2 个答案:

答案 0 :(得分:0)

要到达底部,您必须将scrollTop作为元素的高度。

// When DOM is fully loaded
jQuery(document).ready(function ($) {

    function scroll(speed) {
        $('.shooter-scroller').animate({
            scrollTop: $('.shooter-scroller').prop("scrollHeight")
        }, fast, function () {
            $(this).animate({
                scrollTop: 0
            }, speed);
        });
    }

    speed = 15000;

    scroll(speed)
    setInterval(function () {
        scroll(speed)
    }, speed * 2);
});

这将获得滚动高度。

答案 1 :(得分:0)

您需要更改

$(document).height() - $('.shooter-scroller').height()

$('.shooter-scroller').prop('scrollHeight')

这会给你正确的身高。 见this jsfiddle(注意:我改变了速度以获得更清晰的结果)