19

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

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

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

4

4 回答 4

38

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

$(window).scrollTop($(window).scrollTop()+1);
于 2012-12-11T07:24:22.697 回答
5

我有一个类似的问题。我想向下滚动 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();
于 2018-05-08T06:33:18.787 回答
4

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

window.scrollY += 100;

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

var cur = $(window).scrollTop();
$(window).animate({scrollTop: cur + 100});
于 2012-12-11T07:38:00.660 回答
2
$("html, body").animate({scrollTop: ($(window).scrollTop() + 1)});
于 2016-01-08T14:58:21.883 回答