Создание плавной прокрутки в React (для браузера) - PullRequest
1 голос
/ 07 октября 2019

Я сейчас создаю свой сайт в реакции. Однако refs scroll / css не совместим с сафари и некоторыми другими браузерами. Это означает, что в сафари он просто переходит к элементу div вместо прокрутки к нему.

Не совместимо

html {
   scroll-behavior: smooth;
}

Какая библиотека лучше (активна) или методсоздать все функции плавной прокрутки браузера (последние версии). Я не хочу, чтобы он был слишком тяжелым, потому что он будет использоваться часто.

На этом основан мой текущий свиток: ReactJS, как прокрутить до элемента

1 Ответ

0 голосов
/ 07 октября 2019

Этот пост решит вашу проблему: Решите плавную прокрутку во всех браузерах

function SmoothVerticalScrolling(e, time, where) {
    var eTop = e.getBoundingClientRect().top;
    var eAmt = eTop / 100;
    var curTime = 0;
    while (curTime <= time) {
        window.setTimeout(SVS_B, curTime, eAmt, where);
        curTime += time / 100;
    }
}

function SVS_B(eAmt, where) {
    if(where == "center" || where == "")
        window.scrollBy(0, eAmt / 2);
    if (where == "top")
        window.scrollBy(0, eAmt);
}

и позвоните по этому номеру:

SmoothVerticalScrolling(myelement, 275, "center");
...