首页 > 解决方案 > window.scroll 在 Internet Explorer 11 中不起作用

问题描述

我有以下代码适用于除 on 之外的所有浏览器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>

标签: javascriptscrollwindow

解决方案


IE不支持ScrollBehavior

尝试这个

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>


推荐阅读