【问题标题】:Jquery Scroll One pixel from where ever the user is on screenJquery 从用户在屏幕上的位置滚动一个像素
【发布时间】:2012-11-28 16:55:39
【问题描述】:

好的,这里的场景。我有一个单页网站,其中可能部分使用锚链接。当用户在辅助布局(页面)上并且当他们再次单击以转到主页上的某个部分时,由于某种原因,图形在滚动发生之前无法正确加载。我要做的就是每当加载主布局时,无论加载到哪个锚点,只需将页面向上或向下滚动 1 个像素。

 $.scrollTo({ top: '+=100px', left: '+=0px' }, 800);

我尝试了上面的方法,但这段代码只是将用户从顶部移出 100 像素。我不希望这种情况发生,即不是来自顶部,而是来自用户在屏幕上的任何位置。

【问题讨论】:

    标签: javascript jquery html css scroll


    【解决方案1】:

    使用jquery scrollTop()设置滚动位置为当前滚动位置+1:

    $(window).scrollTop($(window).scrollTop()+1);
    

    【讨论】:

    • 完美我想要的。 +1
    • 小心不要把它放在一个循环中,否则你会得到一个永无止境的平滑滚动。除非这就是你想要的。
    • @Justin McDonald 这不起作用,你必须使用'html,body'而不是窗口。
    【解决方案2】:

    我也有类似的问题。我想向下滚动 1 个像素,然后向上滚动 1 个像素,因此希望用户根本不会注意到任何内容。我这样做了:

    window.scrollBy(0, 1); // 0 pixels horizontal and 1 pixel down
    window.scrollBy(0, -1); // 0 pixels horizontal and 1 pixel up
    

    更新: 但我最终可能会改用 JQuery。我想要的只是触发滚动事件,我可以这样做:

    $(window).scroll();
    

    【讨论】:

      【解决方案3】:

      没有 jQuery 开销的纯 JavaScript 解决方案:

      window.scrollY += 100;
      

      使用 jQuery(和精美的动画):

      var cur = $(window).scrollTop();
      $(window).animate({scrollTop: cur + 100});
      

      【讨论】:

        【解决方案4】:
        $("html, body").animate({scrollTop: ($(window).scrollTop() + 1)});
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-17
          相关资源
          最近更新 更多