我有一个滚动功能,使对象在屏幕上可见。但是,它很慢。有什么方法可以跳转到整个页面吗?
如果有一个合理的可移植方法不使用jquery,则我希望使用本机方法。我对可移植性的定义是,它可用于相当新的chrome和Firefox。
function scrollToId(id) { //TODO: Fix Jquery madness below
var element = $('#' + id); //document.getElementById(id);
var offset = element.offset().top;
if (offset > window.innerHeight) {
// Not in view so scroll to it
$('html,body').animate({
scrollTop: offset
}, 10);
return false;
}
return true;
}
最佳答案
快速跳转到页面上某个区域的最佳选择是使用window.scroll(x,y)方法。这不会为页面设置动画,但是,它将使您的用户非常快地到达页面上的该区域。
function scrollToId(id) { //TODO: Fix Jquery madness below
var element = $('#' + id); //document.getElementById(id);
var yPos = element.offset().top;
var xPos = 0; //This could be the left position of an element like element.offset().left
if (offset > window.innerHeight) {
// Not in view so scroll to it
window.scroll(xPos, yPos);
return false;
}
return true;
}
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_scrollto2
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll