javascript - 快速跳转使 javascript 对象在屏幕上可见

标签 javascript jquery

我有一个功能,可以滚动以使对象在屏幕上可见。然而,它很慢。有没有办法不用滚动整个页面就跳转到?

如果有一种不使用 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

关于javascript - 快速跳转使 javascript 对象在屏幕上可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151762/

相关文章:

javascript - 使用ajax动态更新表格行的值

javascript - mongoose、express 和 node.js 中回调函数的参数

javascript - (jquery tab ui) 如何防止无限制的 jquery 选项卡创建

jQuery UI 只能向左拖动

javascript - CSS Transition 不适用于 FireFox 和 IE

javascript - 隐藏选择选项跨浏览器

javascript - 复选框不适用于多个复选框 onclick

javascript - 尝试导致循环的 window.location 或 window.location.href 重定向

javascript - Parse.User.logIn 卡住了

javascript - 使用选中复选框的数组过滤 JSON 对象