Объект не поддерживает свойство или метод scrollBy в IE11 в React - PullRequest
0 голосов
/ 13 октября 2018

Я использую следующий код для прокрутки прокрутки элемента на 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.Кто-нибудь знает какие-либо обходные пути, polyfill или альтернативы, которые могут работать для IE.

1 Ответ

0 голосов
/ 13 октября 2018

Babel polyfill"будет эмулировать полную среду ES2015 +".Однако scrollBy не является частью спецификации ECMAScript и, следовательно, не будет заполняться Бабелем.Вам необходимо самостоятельно добавить правильный полизаполнение, например полифилл с плавной прокруткой , который также включает scrollBy.

...