Next.js和snapscroll在路由更改时未滚动到页面顶部

8oomwypt  于 2023-03-29  发布在  其他
关注(0)|答案(1)|浏览(165)

Snapscroll和height:100vh一起似乎导致了一个问题,即更改页面不会显示第一个元素,而是受到页面上一个位置或上一个页面位置的影响。
由于我使用的是Sanity.js,“第一”页是未知的,并且使用通用的保持组件来加载所有部分,因此简单地添加“id='top'”是不可行的。

y4ekin9u

y4ekin9u1#

在我的...slug文件中,布局保存了我的sectionRenderer,我查询了“SECTIONCONTAINER”id,它有多个,但这只返回了第一个。然后,我对找到的元素使用了IIFE,以便在路线(slug)更改时滚动进入视图。
希望这能帮助到一些人

useEffect(() => {
        setWhiteText(true);
        const myElement = document.getElementById('SECTIONCONTAINER');
        //IIFE
        (() => {
            myElement.scrollIntoView({ behavior: 'auto' });
        })();

    }, [slug]);

相关问题