首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在NextJS中不工作的光滑滚动多体

在NextJS中不工作的光滑滚动多体
EN

Stack Overflow用户
提问于 2021-11-02 05:01:23
回答 1查看 1.6K关注 0票数 0

我正在使用https://github.com/iamdustan/smoothscroll包来支持Safari中的平滑滚动。

我跟踪了doc和NextJS文档并创建了一个自定义应用程序,在其中导入了polyfill导入:

_app.jsimport smoothscroll from 'smoothscroll-polyfill'; // at the top level

代码语言:javascript
代码运行次数:0
运行
复制
if (typeof window !== "undefined") {
  console.log('polyfilled');
  smoothscroll.polyfill();
  window.__forceSmoothScrollPolyfill__ = true;
}

我可以看到打印语句被记录下来,但是平滑的滚动仍然不能工作。

下面是在Chrome中工作的滚动片段:

代码语言:javascript
代码运行次数:0
运行
复制
element.scrollTo({
  left: 200,
  behavior: "smooth"
});

我在这里做错什么了?在NextJS应用程序中,我能做些什么才能在Safari中顺利滚动?!

EN

回答 1

Stack Overflow用户

发布于 2022-01-21 22:15:09

if (typeof window !== "undefined")语句中,您似乎要在undefined周围添加引号,所以您要检查window是否等于字符串"undefined",而字符串"undefined"总是正确的。

你把多填充语句放哪儿了?

把它放在useEffect in _app.js中,对我来说就像一种魅力。:-)

代码语言:javascript
代码运行次数:0
运行
复制
// _app.js
import { polyfill } from 'smoothscroll-polyfill';

function App(...

   useEffect(() => {
        polyfill();
   },[])

另外,请注意,他们建议不要强制使用window.__forceSmoothScrollPolyfill__ = true;语句填充多数点,因此,如果没有必要,删除它可能是理想的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69805586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档