反応とCSSを用いたスクロールのNavbarスタイルの変更
4371 ワード
最近、以前のプロジェクトのUIを改善してきました.私が学んだクールなものは、ユーザーがスクロールするときのNavbarのスタイルを変えることです.
私のプロジェクトは、白い背景を持っていたウェブカメラの上に白い背景を持つナババーを持っていました.'フローティング'アイテムを削除して、Navbarをより明白にするために、私はスクロールの上でNavbarの背景色を変えました.
Navbarコンポーネントでは
イベントリスナーを追加しました イベントリスナーは、反応LifeCycleメソッドです にも The
読書ありがとうございます!)
私のプロジェクトは、白い背景を持っていたウェブカメラの上に白い背景を持つナババーを持っていました.'フローティング'アイテムを削除して、Navbarをより明白にするために、私はスクロールの上でNavbarの背景色を変えました.
Navbarコンポーネントでは
componentDidMount() {
window.addEventListener("scroll", this.handleScroll);
}
componentWillUnmount() {
window.removeEventListener("scroll", this.handleScroll);
}
handleScroll = () => {
if (window.scrollY > 20) {
document.querySelector(".navbar").className = "navbar
scroll";
} else {
document.querySelector(".navbar").className = "navbar";
}
};
window
ユーザーがウェブサイトの上部からスクロールするときに見るオブジェクト.componentDidMount
このコンポーネントが作成されると、一度だけ作成されます.componentWillUnmount
DOMからコンポーネントを削除するときにイベントリスナーを削除します.handleScroll
ユーザのスクロール時にメソッドが呼び出されます.このメソッドはclassName
Nav要素には、CSSで背景色を上書きすることができます.window.scrollY
ウィンドウオブジェクトのプロパティで、ドキュメントが現在垂直方向にスクロールされているピクセル数を返します.このプロパティを使用して、ユーザーが過去20ピクセルをスクロールしたときを検出します.ユーザーがそうするとき、HTMLはこのように見えます// scrollY > 20
<nav className="navbar scroll">
// VS
// scrollY = 0
<nav className="navbar">
今私はscroll
クラス名を使ってCSSファイルで選択できます..navbar {
background-color: #fff;
}
.scroll {
background-color: #f1f1f1;
}
The scroll
背景色は、デフォルトの背景色をscroll
下はnavbar
CSSファイルで.読書ありがとうございます!)
Reference
この問題について(反応とCSSを用いたスクロールのNavbarスタイルの変更), 我々は、より多くの情報をここで見つけました https://dev.to/caicindy87/change-navbar-style-on-scroll-using-react-and-css-43pcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol