我有一个滚动div,当我点击它时我想要一个事件,它会强制它div滚动以查看里面的元素。我这样写它的JavasSript:
div
document.getElementById(chr).scrollIntoView(true);
但这会在滚动div自身的同时滚动所有页面。如何解决?
我想这样说: MyContainerDiv.getElementById(chr).scrollIntoView(true);
MyContainerDiv.getElementById(chr).scrollIntoView(true);
您需要获取要滚动到视图中的元素相对于其父级(滚动 div 容器)的顶部偏移量:
var myElement = document.getElementById('element_within_div'); var topPos = myElement.offsetTop;
变量 topPos 现在设置为滚动 div 的顶部和您希望可见的元素之间的距离(以像素为单位)。
现在我们使用以下命令告诉 div 滚动到该位置scrollTop:
scrollTop
document.getElementById('scrolling_div').scrollTop = topPos;
如果你使用原型 JS 框架,你会做同样的事情:
var posArray = $('element_within_div').positionedOffset(); $('scrolling_div').scrollTop = posArray[1];
同样,这将滚动 div 以使您希望看到的元素恰好位于顶部(或者如果这不可能,则尽可能向下滚动以使其可见)。