Javascript 当给予内部div焦点时,防止div滚动到顶部-IE 11
我有一个带有Javascript 当给予内部div焦点时,防止div滚动到顶部-IE 11,javascript,internet-explorer,internet-explorer-11,Javascript,Internet Explorer,Internet Explorer 11,我有一个带有样式的外部div。溢出设置为自动。它包含一个较大的子div,这会导致外部div可滚动 当外部div滚动到底部时,将焦点交给内部div会使滚动位置返回到左上角(0,0)。这只发生在IE11上。通过下面的链接提供了该问题的一个工作示例(单击div时会显示焦点) 有没有办法防止窗口滚动到顶部?我可以通过将scrollTop预先设置为0,然后移动边距使其保持在同一位置来解决这个问题。最后,你可以撤销所有这些疯狂 以下是您修改后的示例: 尝试使用setActive。这就像没有滚动的“焦点”,
样式的外部div。溢出
设置为自动
。它包含一个较大的子div,这会导致外部div可滚动
当外部div滚动到底部时,将焦点交给内部div会使滚动位置返回到左上角(0,0)。这只发生在IE11上。通过下面的链接提供了该问题的一个工作示例(单击div时会显示焦点)
有没有办法防止窗口滚动到顶部?我可以通过将scrollTop预先设置为0,然后移动边距使其保持在同一位置来解决这个问题。最后,你可以撤销所有这些疯狂 以下是您修改后的示例:
尝试使用
setActive
。这就像没有滚动的“焦点”,并且它只在IE中可用。这里是另一篇文章的链接,我在这里描述了我如何使用它来完成基本相同的事情。
document.getElementById('div1').onclick = function() {
var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');
var scrollTop = div1.scrollTop;
div2.style.marginTop = (-scrollTop) + 'px';
div1.scrollTop = 0;
// give focus to inner div
document.getElementById('div2').focus();
// Undo the horribleness
div2.style.marginTop = '0px';
div1.scrollTop = scrollTop;
}