2011-06-15 91 views

回答

12

多google搜索,我发现你只需要做到这一点后:

location.hash = "elementId" 
8

下面是我对今天的New York Times front page测试使用浏览器控制台的例子功能:

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); 
7

另一种解决方案是scrollIntoView()

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

当*行为:平滑*将可用,这将是一个完美的解决方案(因为现在它只是跳 - 这不是理想的用户体验) – Symba 2017-08-07 08:11:51

相关问题