我正在尝试链接到页面中的div,我要求window.scrollTo(0, $(this.hash));
转到div所在的位置。
当我调试它时,它是正确的,但是当我在window.scroll中使用它时,它会转到页面顶部。为什么不去正确的位置?
$(document).ready(function() {
$('a').on('click', function(e){
e.preventDefault();
// console.log(this.hash);
console.log(e.currentTarget.href.indexOf('#'));
console.log($(this.hash));
console.log(window.pageYOffset);
console.log(window.location.hash);
if(e.currentTarget.href.indexOf('#') != -1){
// console.log(window.location);
window.scrollTo(0, $(this.hash)); //the scrollY should be the hash location
console.log($(this.hash));
}
return false;
});
});
答案 0 :(得分:1)
我认为您误解了window.scrollTo
的所作所为。您可以在此处找到文档:http://www.w3schools.com/jsref/met_win_scrollto.asp
它基本上接受xPos和yPos作为参数。因此,您可以执行window.scrollTo(0, $(this.hash).offset().top)
之类的操作,也可以执行$(window).animate({scrollTop: $(this.hash).offset().top})
如果有帮助,请告诉我!