我正在使用以下代码在mouseDown上滚动滚动一个元素,并在mouseUp / mouseOut上停止滚动。

scrubby(xDir) {
    let dub = setInterval(() => {
      document.getElementById("chart").scrollBy(8 * xDir, 0);
    }, 10);

    this.setState({ dub: dub });
  }

  scrubbyStop() {
    const { dub } = this.state;
    if (dub !== null) {
      clearInterval(dub);
    }
    this.setState({ dub: null });
  }

除IE 11之外,此方法均可在其他任何地方使用。在IE 11中,出现以下错误:
TypeError: Object doesn't support property or method 'scrollBy'

当我console.log元素时,请使用document.getElementById来确保选择元素。

我正在使用babel-polyfil

我看到很多与scrollTo有关的问题,但与scrollBy无关。有谁知道可能适用于IE的任何解决方法,polyfill或替代方法。

最佳答案

Babel polyfill“将模拟完整的ES2015 +环境”。但是, scrollBy 不是ECMAScript规范的一部分,因此Babel不会对其进行多填充。
您需要自己添加适当的polyfill,例如smooth scroll behaviour polyfill,其中也包括scrollBy

10-06 04:27