Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当给予内部div焦点时,防止div滚动到顶部-IE 11_Javascript_Internet Explorer_Internet Explorer 11 - Fatal编程技术网

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;
}