使用Javascript / Jquery滚动到页面的特定位置

31
可以使用JavaScript / jQuery将页面滚动到特定位置,类似于在HTML中使用#elementId实现跳转。当调用JS函数时,可以滚动到页面上的特定位置。
4个回答

29

经过大量谷歌搜索,我发现你只需要这样做:

location.hash = "elementId"

非常好的一个,谢谢! - Jack
窗口滚动到(x坐标,y坐标)窗口滚动到(options) - ASANIAN

18

另一种解决方案是使用 scrollIntoView() 方法。

document.getElementById("elementID").scrollIntoView();

behavior:smooth可用时,这将是完美的解决方案(因为现在它只是跳跃 - 这不是理想的用户体验)。 - Claudiu

15

以下是我在今天的纽约时报首页上使用浏览器控制台测试过的示例函数:

function scrollToElement(pageElement) {    
    var positionX = 0,         
        positionY = 0;    

    while(pageElement != null){        
        positionX += pageElement.offsetLeft;        
        positionY += pageElement.offsetTop;        
        pageElement = pageElement.offsetParent;        
        window.scrollTo(positionX, positionY);    
    }
}

var pageElement = document.getElementById("insideNYTimesHeader");
scrollToElement(pageElement);

智能编码!这正是我所需要的。谢谢! - nwillo
你能用这个添加平滑滚动吗? - nwillo
2
@nwillo window.scrollTo({ top: positionY, left: positionX, behavior: 'smooth' }); @nwillo window.scrollTo({ top: positionY, left: positionX, behavior: 'smooth' }); - jami0821

2

你可以使用 scrollTop 来向上滚动。

你也可以使用this插件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接