【问题标题】:window.scroll does not work in Internet Explorer 11window.scroll 在 Internet Explorer 11 中不起作用
【发布时间】:2020-12-02 18:59:24
【问题描述】:

除了IE11 之外,我有以下代码适用于所有浏览器。知道可能是什么问题吗?

function scrollIntoWarranty() {
  var offset = 50;
  var el = document.querySelector("#tr_tab_2");
  window.scroll({ top: (el.offsetTop - offset), left: 0, behavior: 'smooth' });
}
<a href="#" onclick="scrollIntoWarranty(); return false;">
  Go to warranty
</a>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<div id="tr_tab_2">Warranty</div>

【问题讨论】:

  • 不,恰恰相反,不再支持 IE :))
  • @MisterJojo 完全同意

标签: javascript scroll window


【解决方案1】:

ScrollBehavior 是 IE 的 not supported

试试这个

function scrollIntoWarranty() {
  var el = document.querySelector("#tr_tab_2");
  if ('scrollBehavior' in document.documentElement.style) { // behavior is not supported by IE
    var offset = 50;
    window.scroll({ top: (el.offsetTop - offset), left: 0, behavior: 'smooth' });
  } else {
    el.scrollIntoView();
  }
}
<a href="#" onclick="scrollIntoWarranty(); return false;">
  Go to warranty
</a>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
<div id="tr_tab_2">Warranty</div>

【讨论】:

  • 你是个传奇,我真的很讨厌IE。谢谢!
  • 我清理了一下。
猜你喜欢
  • 2016-10-20
  • 2019-08-12
  • 2014-08-22
  • 1970-01-01
  • 2015-03-22
  • 2018-01-17
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多