jQuery.scrollSpeed.js 重置页面偏移量

jQuery.scrollSpeed.js resetting page offset

所以我的问题是,当您进入我网站的查看项目页面时,我的页面加载 jQuery 使页面向下滚动 200 像素,但 jQuery.scrollSpeed.js 重置了页面偏移量当他们使用滚轮时回到页面顶部。

抱歉,如果那是一个错误的解释,如果你去这里你可以自己看到问题:http://www.coastalculture.matttruscott.co.nz/view.php?item=20

我在 javascript/jQuery 方面经验不足,所以我不知道如何防止这种情况发生。

JQuery 脚本如下:

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script src="js/jQuery.scrollSpeed.js"></script>
<script>
    $(function() {  
        jQuery.scrollSpeed(50, 800);
    });
</script>
<script>
window.addEventListener("load", function(){
    $('body,html').animate({
            scrollTop: 200 ,
            }, 1200
        );
});
</script>

scrollSpeed 组件似乎有问题。

我能找到解决问题的唯一优雅方法是直接修改 scrollSpeed 代码。

目前开头看起来是这样的:

  jQuery.scrollSpeed = function (step, speed, easing) {

    var $document = $(document),
        $window = $(window),
        $body = $('html, body'),
        option = easing || 'default',
        root = 0,
        scroll = false,
        scrollY,
        scrollX,
        view;

    if (window.navigator.msPointerEnabled)

将此更改为:

  jQuery.scrollSpeed = function (step, speed, easing) {

    var $document = $(document),
        $window = $(window),
        $body = $('html, body'),
        option = easing || 'default',
        root = 0,
        scroll = false,
        scrollY = $document.height() > $window.height(),
        scrollX = $document.width() > $window.width(),
        view;

    if (window.navigator.msPointerEnabled)

注意 scrollYscrollX 起始值。

它解决了向下滚动并重新加载页面后页面偏移的问题,或者如果您使用:$window.off('mousewheel DOMMouseScroll');(用于禁用或启用滚动)

将其更改为:root = 0 on root = document.documentElement.scrollTop || document.body.scrollTop

var $document = $(document),`enter code here`
    $window = $(window),
    $body = $('html, body'),
    option = easing || 'default',
    root = document.documentElement.scrollTop || document.body.scrollTop,
    scroll = false,
    scrollY,
    scrollX,
    view;