我有一个滚动功能,使对象在屏幕上可见。但是,它很慢。有什么方法可以跳转到整个页面吗?

如果有一个合理的可移植方法不使用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

10-06 07:54