javascript - 如何滚动到 div 内的元素?

标签 javascript html scroll

我有一个滚动的 div,当我点击它时我想有一个事件,它会强制这个 div 滚动以查看里面的元素。 我这样写它的 JavasSript:

document.getElementById(chr).scrollIntoView(true);

但这会在滚动 div 本身的同时滚动所有页面。 如何解决?

我想这样说: MyContainerDiv.getElementById(chr).scrollIntoView(true);

最佳答案

您需要获取要滚动到 View 中的元素相对于其父元素(滚动的 div 容器)的顶部偏移量:

var myElement = document.getElementById('element_within_div');
var topPos = myElement.offsetTop;

变量 topPos 现在设置为滚动 div 顶部与您希望可见的元素之间的距离(以像素为单位)。

现在我们使用 scrollTop 告诉 div 滚动到那个位置:

document.getElementById('scrolling_div').scrollTop = topPos;

如果你使用原型(prototype) JS 框架,你会像这样做同样的事情:

var posArray = $('element_within_div').positionedOffset();
$('scrolling_div').scrollTop = posArray[1];

同样,这将滚动 div,以便您希望看到的元素恰好位于顶部(或者如果不可能,则尽可能向下滚动以使其可见)。

关于javascript - 如何滚动到 div 内的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635706/

相关文章:

javascript - JQuery - 使用给定的正则表达式搜索元素值

ios - Hammer.js 的垂直滚动问题

css - div不能滚动只有浏览器窗口有滚动条

javascript - 什么是具有以下类型签名的函数 : (x) => (func) => (. ..values) => func(x,...values)

javascript - 如何以最大优化将json转换为html

javascript - Rails 中的 Angular 路由(显示空白页)

javascript - 如何从 HTML/AJAX 输出 PHP/SQL 结果

html - 从 GitHub Pages 上托管的静态页面发送电子邮件

javascript - 如何在不刷新页面的情况下将jsp页面的值发送到数据库

angularjs - 从顶部删除项目时如何在AngularJS中保留ng-repeat的滚动位置