css - 在React中创建平滑滚动(浏览器友好)

标签 css reactjs scroll cross-browser

我目前正在建立我的网站React。但是refs scroll / css与Safari和某些其他浏览器不兼容。在野生动物园中,它只是跳到div而不是滚动到div。

不兼容

html {
   scroll-behavior: smooth;
}


什么是创建所有浏览器(最新版本)平滑滚动功能的最佳库(处于活动状态)或方法。我不希望它太重,因为它会经常使用。

这是我当前的滚动基于的内容:ReactJS how to scroll to an element

最佳答案

这篇文章解决了您的问题:Solve smooth scroll on all browser



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");

关于css - 在React中创建平滑滚动(浏览器友好),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58266742/

相关文章:

javascript - 当用户单击链接时,如何在转到其他页面之前滚动到顶部?

android - 在 Android 中滚动时 ListView 项目发生变化

jquery - 使 DIV 不显示在其容器外

jquery - 父级上的单击事件不适用于子级

reactjs - MUI - 在 DataGrid 中禁用多行选择

javascript - 如何在没有引用的情况下复制 react 状态?

css 覆盖 Magefan BLOG 的 ULTIMO 主题 - magento 2.2.1

CSS 选择器选择连字符后的第二个元素

javascript - 如何在类组件中使用 next.js 中的 "useRouter()"?

scroll - "Disable horizontal scroll on Apple MBP multi touch trackpad"