Javascript 到达特定元素时向上滚动网页(如果已到达)

Javascript 到达特定元素时向上滚动网页(如果已到达),javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一段代码,当页面加载时,它会自动滚动到最后一个元素: <!DOCTYPE html> <html> <head> <title>...</title> <script src="jquery-2.1.0.js"></script> <script src="jquery.scrollTo-1.4.3.1.js"></script> </head> &

我有一段代码,当页面加载时,它会自动滚动到最后一个元素:

<!DOCTYPE html>
<html>
<head>
    <title>...</title>
    <script src="jquery-2.1.0.js"></script>
    <script src="jquery.scrollTo-1.4.3.1.js"></script>
</head>
<body>


    <h1 id="begin">Begin</h1>
    ...
    <h1 id="end">End</h1>

    <script>
        $(window).load(function () {
            $('body').scrollTo('#end', {duration:5000});
        })
    </script>

</body>
</html>

...
开始
...
终点
$(窗口)。加载(函数(){
$('body')。滚动到('end',{duration:5000});
})
我想做的是,当它到达结束元素时,它向上滚动到开始元素,然后继续这个过程,直到满足特定的标记

所以这里有两个问题:

  • 到达终点时,如何使窗口向上滚动
  • 如何检查是否遇到特定的元素id并停止循环

  • 此功能将起作用

        $('.go-top').click(function (e) {
        e.preventDefault();
         $('html,body').animate({                   
            scrollTop:$("YourID").offset().top + 'px'
                }, 'slow');});
    

    用于转到具有
    someID
    的特定元素:

    $('html, body').animate({
        scrollTop: $("#someID").offset().top
    }, 2000);
    
    并滚动至页面顶部:

    $('html, body').animate({scrollTop: '0px'}, 300);
    
    要检查滚动后is元素是否可见,请执行以下操作:

    function isScrolledIntoView(elem)
    {
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();
    
    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();
    
    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
    }
    
    函数是crolledintoview(elem)
    {
    var docViewTop=$(window.scrollTop();
    var docViewBottom=docViewTop+$(window).height();
    var elemTop=$(elem).offset().top;
    var elemBottom=elemTop+$(elem).height();
    返回((elemBottom=docViewTop));
    }
    
    在哪种情况下,您正在执行scrollTo()方法,如单击任何按钮。您说“它到达结束元素”。这是什么意思?您如何通过滚动页面来满足结束元素?我的意思是它从页面顶部滚动到底部。一旦完成,我想把它发送到另一个元素。有可能吗?在某些网页中,如果我们在最后完全向下滚动,我们会有一个名为“Top”的选项。如果单击该按钮,它将滚动到页面顶部。。我说得对吗?我不想转到“Top”元素,而是想转到特定的id。只有在达到myCurrentID时,我才需要滚动到someID。或者换句话说,我想向下滚动到ID1,然后一旦停止滚动,移动到ID2,依此类推,直到到达ID9。我该怎么做?@BranAlgue:更新了答案。在页面上调用
    iscrolledintoview($(“#someID”)
    ,每次滚动。如果滚动后元素可见,则返回true。