いつもお世話になります。
javascriptとnext.jsを勉強しているのですが、
行き詰まってしまっているので教えてください。
トップページにて
「コンテンツ位置までスクロールすると画像がフェードインする」
という処理を入れているのですが、次のページに遷移した際に、
TypeError: Cannot read properties of null (reading 'offsetTop') 14 | const topHeight = window.scrollY 15 | const element = document.getElementById('content') > 16 | const contentOffsetTop = element.offsetTop | ^ 17 | if (topHeight > contentOffsetTop - 500) { 18 | isHideContentImage = false 19 | showLeftImage(isHideContentImage)
というエラーが出てきてしまいます。
毎回発生するというわけではなく、
トップを開いて1スクロールしてすぐに次へのリンクを押したときにエラー発生する時があります。
以下が作成したスクリプトになります
js
1export default function Home() { 2 3 const [isHideContentImage, showContentImage] = useState(true) 4 const imageStyle = isHideContentImage ? `${Style.image}` : `${Style.image} ${Style.show}`; 5 6 const ShowImage = () => { 7 const topHeight = window.scrollY 8 const element = document.getElementById('content') 9 const contentOffsetTop = element.offsetTop 10 if (topHeight > contentOffsetTop - 500) { 11 isHideContentImage = false 12 showLeftImage(isHideContentImage) 13 } 14 } 15 16 useEffect(() => { 17 window.addEventListener('scroll', ShowImage, {passive: true}); 18 return () =>{ 19 window.removeEventListener('scroll', ShowImage) 20 } 21 }); 22 23 return ( 24 <section id="content"> 25 <Link href="/next-page">次のページ</Link> 26 <div className={imageStyle}> 27 <img src="/images/about01.jpg" width="100%" alt=""/> 28 </div> 29 </section> 30 ) 31}
よろしくお願いします

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。