ホームページ > ウェブフロントエンド > jsチュートリアル > vue がスクロール イベントをリッスンし、要素を上部または固定位置に表示する方法の詳細な説明

vue がスクロール イベントをリッスンし、要素を上部または固定位置に表示する方法の詳細な説明

小云云
リリース: 2018-05-10 16:48:57
オリジナル
9245 人が閲覧しました

この記事では主に、Vue の特定の要素の天井または固定位置表示とスクロール イベントの監視について詳しく紹介します。興味のある方は参考にしていただければ幸いです。

私は最近、特定の部分の天井効果を達成する必要がある VUE Web アプリ プロジェクトを作成しました。つまり、ページが上にスライドしてこの部分に到達すると、この部分が固定されて上部に表示されます。

1. スクロール イベントをリッスンします
VUE を使用して、現在のスクロールトップをコンソールに出力するスクロールトップを作成します。まず、マウントされたフックのウィンドウにスクロール リッスン イベントを追加します。

mounted () {
 window.addEventListener('scroll', this.handleScroll)
},
ログイン後にコピー

次に、メソッド内で、この handleScroll メソッドを追加します

handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 console.log(scrollTop)
},
ログイン後にコピー

コンソールの出力結果:

2. 要素から上部までの距離を監視し、スクロール距離が要素から上部までの距離より大きいかどうかを判断し、searchBar を true に設定します。 、そうでない場合は false

handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 var offsetTop = document.querySelector('#searchBar').offsetTop
 if (scrollTop > offsetTop) {
 this.searchBarFixed = true
 } else {
 this.searchBarFixed = false
 }
},
ログイン後にコピー

要素を先頭に固定するスタイル、isFixed (書き込みを少なくする)

.searchBar{
 .isFixed{
 position:fixed;
 background-color:#Fff;
 top:0;
 z-index:999;
 }
 ul {
 WIDTH:100%;
 height: 40px;
 line-height: 40px;
 display: flex;
 li {
  font-size: 0.8rem;
  text-align: center;
  flex: 1;
  i {
  font-size: 0.9rem;
  padding-left: 5px;
  color: #ccc;
  }
 }
 border-bottom: 1px solid #ddd;
 }
}
ログイン後にコピー

次に、固定する必要がある要素のクラスを searchBar にバインドします。 searchBar が true の場合、これを適用します。修正されたスタイル

<p class="searchBar" id="searchBar">
 <ul :class="searchBarFixed == true ? &#39;isFixed&#39; :&#39;&#39;">
 <li>区域<i class="iconfont icon-jiantouxia"></i></li>
 <li>价格<i class="iconfont icon-jiantouxia"></i></li>
 <li>房型<i class="iconfont icon-jiantouxia"></i></li>
 <li>更多<i class="iconfont icon-jiantouxia"></i></li>
 </ul>
</p>
ログイン後にコピー

修正された結果:

このページを離れる場合は、この監視対象イベントを削除する必要があることに注意してください。削除しないと、エラーが報告されます。

destroyed () {
 window.removeEventListener(&#39;scroll&#39;, this.handleScroll)
},
ログイン後にコピー

関連する推奨事項:


JavaScript

jsを使用してナビゲーションの天井効果を実現するためのナビゲーションバーの天井操作を実装する方法に関する例の共有

react.jsを使用したタブの天井の実装の問題

以上がvue がスクロール イベントをリッスンし、要素を上部または固定位置に表示する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート