react+hooks+styledComponent:nav barにイベントとダイナミックな変化を与える
1998 ワード
TOC Effectを使用してスクロールイベント を検出する.の状態の変化を検出するスタイル を変更する.
動的変更スタイル 1.Effectを使用してスクロールイベントを検出する
reactは基本的にjs文法を尊重します.そのため、できるだけjsを利用しましょう.
jsのaddEventListenerを使います.
userEffect windowを通ります.スクロールしたイベントを検出します.
addEventListener
userEffectは、コンポーネントのレンダリングを検出し、レンダリングが完了した後にイベントを開始します.2番目のパラメータを使用して条件を設定しない場合は、レンダリングのたびにコールバック関数が実行されます.
このuseEffectのためにeventListenerを掛けましょう.volumeの特定の値でイベントを実行するためには、volume値の位置が常に見られるのが適切であり、userEffectの位置が適切であると考えられます.
2.状態の変化を検出し、スタイルを変更する
addEventListener useEffectに追加 の状態の変化に従って、コンポーネントの様式 が変更する.
上の2種類はつなぎ返さなければならない.この条件を満たすコードを書く前に、どうすればいいか考えてみましょう. 1号は希望するeventListenerを追加すれば良いだけで、コールバック関数として何を与えるべきかはまだ決まっていません.
スタイルは の状態によって変化する必要があるため、タグのidまたはclass値に条件を設定することが望ましい. 首都コードの形で2番目の問題に対する思考結果を見る.
3.スタイルを動的に変更する
styled-componsesを使用して動的に変更するには、さまざまな方法があります.
最も簡単な方法を見てみましょう.
この文章の核心内容はtagのclassまたはid値を変更し,異なるcssを適用することによってスタイルを変更することである.ではcssには自然に2つのcssがあります.切替値に基づいてnavOnというcss値とnavOffという値が指定されている場合.
動的変更
reactは基本的にjs文法を尊重します.そのため、できるだけjsを利用しましょう.
jsのaddEventListenerを使います.
userEffect windowを通ります.スクロールしたイベントを検出します.
userEffectは、コンポーネントのレンダリングを検出し、レンダリングが完了した後にイベントを開始します.2番目のパラメータを使用して条件を設定しない場合は、レンダリングのたびにコールバック関数が実行されます.
このuseEffectのためにeventListenerを掛けましょう.volumeの特定の値でイベントを実行するためには、volume値の位置が常に見られるのが適切であり、userEffectの位置が適切であると考えられます.
2.状態の変化を検出し、スタイルを変更する
addEventListener
上の2種類はつなぎ返さなければならない.この条件を満たすコードを書く前に、どうすればいいか考えてみましょう.
スタイルは
state.navStyle ? navOn : navOff
以上のコードは反作用によって実現できる. <div className={scrollToggle ? "NavOn" : "NavOff"}>
このように実現するのがstateです.scrollToggleの値をいつでも読み取り、trueとfalseの値に基づいて他のclassNameをdivタグに書き込むことができます.これにより、classNameが変更され、cssスタイルの値も変更されます.3.スタイルを動的に変更する
styled-componsesを使用して動的に変更するには、さまざまな方法があります.
最も簡単な方法を見てみましょう.
この文章の核心内容はtagのclassまたはid値を変更し,異なるcssを適用することによってスタイルを変更することである.ではcssには自然に2つのcssがあります.切替値に基づいてnavOnというcss値とnavOffという値が指定されている場合.
& .NavOn {
...
transition: background 0.6s ease-in-out;
...
}
このように変換効果を用いると,単純に変化するcss属性に時間差を与えるだけで効果が得られる.Reference
この問題について(react+hooks+styledComponent:nav barにイベントとダイナミックな変化を与える), 我々は、より多くの情報をここで見つけました https://velog.io/@zerozoo-front/reacthooksstyledComponent-nav-bar에-event와-동적-변화-부여하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol