如何在React JS和Lenis平滑滾動中切換螢幕時滾動回頂部
P粉662614213
P粉662614213 2023-08-18 09:58:58
0
1
571
<p>我正在使用lenis來實現平滑滾動,並且我有一個ScrollToTop.js文件,我在我的App.js中使用它。當頁面沒有滾動時,它運行得很好,但是當我點擊一個按鈕,將我帶到另一個頁面時,“平滑滾動”正在發生時,scrollToTop不起作用,有人知道如何解決這個問題嗎? </p> <p>ScrollToTop.js</p> <pre class="brush:php;toolbar:false;">import { useEffect } from "react"; import { useLocation } from "react-router-dom"; import { gsap } from "gsap"; import { colors } from "./constants"; export default function ScrollToTop() { const { pathname } = useLocation(); const body = document.querySelector("body"); useEffect(() => { window.scrollTo(0, 0); // gsap.to(body, { duration: 0, backgroundColor: colors.white }); }, [pathname]); return null; }</pre> <p>我已經嘗試在每個頁面中使用useLayoutEffect,但不起作用</p>
P粉662614213
P粉662614213

全部回覆(1)
P粉198814372

正如其他人指出的那樣,您正在使用ScrollToTop元件包裝您的Routes元件,但是我建議將其轉換為React鉤子,而不是編輯它以呈現其隱式children屬性,特別是考慮到它實際上並不呈現任何內容,您希望它作為導航的副作用來運作。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!