vue的滾動scroll事件 實現某元素吸頂或者固定位置顯示
最近寫了一個VUE的web app專案,需要實現某個部位吸頂的效果。即,頁面往上滑動,剛好到達該部位時,該部分,固定在頂部顯示。
1、監聽滾動事件
利用VUE寫一個在控制檯列印當前的scrollTop,
首先,在mounted鉤子中給window新增一個滾動滾動監聽事件,
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(less寫法)
.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; } }
然後將需要固定的元素的class與searchBar進行繫結,如果searchBar為true時,就應用這個isFixed樣式
<div class="searchBar" id="searchBar"> <ul :class="searchBarFixed == true ? 'isFixed' :''"> <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> </div>
固定後的結果:
注意,如果離開該頁面需要移除這個監聽的事件,不然會報錯。
destroyed () { window.removeEventListener('scroll', this.handleScroll) },
相關推薦
vue的滾動scroll事件 實現某元素吸頂或者固定位置顯示
最近寫了一個VUE的web app專案,需要實現某個部位吸頂的效果。即,頁面往上滑動,剛好到達該部位時,該部分,固定在頂部顯示。1、監聽滾動事件利用VUE寫一個在控制檯列印當前的scrollTop,首先,在mounted鉤子中給window新增一個滾動滾動監聽事件,mounted () { window.
vue監聽滾動事件 實現某元素吸頂或者固定位置顯示
最近寫了一個VUE的web app專案,需要實現某個部位吸頂的效果。即,頁面往上滑動,剛好到達該部位時,該部分,固定在頂部顯示。 1、監聽滾動事件 利用VUE寫一個在控制檯列印當前的scrollTop, 首先,在mounted鉤子中給window新增一個滾動滾
Vue 事件監聽實現導航欄吸頂效果(頁面滾動後定位)
所說的吸頂效果就是在頁面沒有滑動之前,導航欄的效果如下圖所示:當頁面向上滑動之後,導航欄始終固定在頁面的上方。具體程式碼:寫入事件監聽,監聽滾動條。mounted () { // 事件監聽滾動條 window.addEventListener('scroll', this.watchS
jQuery scroll事件實現監控滾動條分頁示例
scroll事件適用於window物件,但也可滾動iframe框架與CSS overflow屬性設定為scroll的元素。 複製程式碼程式碼如下: $(document).ready(function () { //本人習慣這樣寫了 $(window).sc
實現某元素上滑至頂端時固定懸浮
.afix{ position:fixed; top:45px; z-index:100; } .fix{ position:fixed; top:0px; z-index:100; } .parent { background: white; width: 100%; border-bottom: 1px
vue獲取當前事件的dom元素 var thisDom = e.currentTarget;
在vue裡面,經常用到click,如何獲取執行click事件的當前dom物件呢? <span class="btn-play" tapmode @click="playvideo($event,
vue滾動載入事件
created(){//頁面建立的時候呼叫 this.scrollLoding(); }, scrollLoding() { // 快取指標 let self = this;
RecyclerView自身帶的滾動事件(平滑的移動到特定的Position位置顯示)
關於滾動事件RecyclerView給我們提供了兩個方法: 方法一: 直接呼叫; mRecycleview.scrollToPosition(position); 是可以實現直接顯示到當前你要顯示的position的位置的 但是給我的體驗是並沒有移動的那種效果所以我搜索了
Android studio RecyclerView實現炫酷吸頂效果
public class SectionDecoration extends RecyclerView.ItemDecoration { private List<NameBean> beanList; private TextPaint textPaint; priva
jquery實現導航欄吸頂效果(簡潔版)
憋說話,直接上程式碼,先是最最重要的js: $(function(){ var a = $('#course-tab'), b =a.offset();//返回或設定導航欄相
C# 滑鼠懸浮mouseHover事件的新增 實現滑鼠懸浮在按鈕或者控制元件 顯示相關的幫助資訊
有些時候,我們為了讓程式更加的人性化,降低應用的難度,必要的幫助資訊是不可少的。 比如,儘管某些按鈕我們已經給其取了名字,我們可以從名字上大致判斷出這個按鈕的作用是什麼,但是有些時候這些資訊還是不夠,或者是軟體的使用者並不是業內相關的人員,這時候我們可以使用mouseHov
easyui 視窗 滾動條 固定位置顯示
$('#w').window('open'); $('#w').window("move",{top:$(document).scrollTop() + 30}); 獲得右側滾動條目前的高度位置,然後再移動此位置
vue監聽滾動事件 實現動態錨點
title 復制代碼 嘗試 理念 元素 滾動 功能 time 滿足 前幾天做項目的時候,需要實現一個動態錨點的效果 如果是傳統項目,這個效果就非常簡單。但是放到 Vue 中,就有兩大難題: 1. 在沒有 jQuery 的 animate() 方法的情況下,如何實現平滑滾動
如何在Vue專案中實現吸頂元素
我的思路就是判斷合適的時候將這個元素的position設為fixed,那麼這個合適的時機如何判斷呢?我們可以計算頁面滾動的距離。 監聽頁面滾動狀態 在mounted鉤子中加入以下程式碼: mounted() { // handleScroll為頁面滾動的監聽回撥 wind
Vue 自定義指令實現點選元素外觸發事件
前言 最近搞了畢設,需要實現一個場景,點選一塊區域,彈出一個編輯區域,點選頁面的其他地方的時候,這個編輯區域就隱藏,本想想之前寫模態框一樣寫個方法的時候,突然覺得可以嘗試用 vue 相關的東西優雅的解決這個事情,然後就學了下面的自定義指令了。 前置知識 既然要用 V
Qt中隱藏滾動條重新實現鼠標滾輪事件wheelEvent
spa pan del 滾輪 重載方法 div qt5 delta event delta()已經被棄用了,QT5中用的是angleDelta(),計算的時候取angleDelta().y()值。 #重載方法wheelEvent(self,event),即滾輪事件
滾動頁面,加載元素,實現邏輯
height 加載 set clas 提前 fse () -s fun 1 <script> 2 $(function(){ 3 $(window).scroll(function () { //滾動觸發 4
vue.js click點擊事件獲取當前元素對象
sage div get fun 事件傳播 處理 class 前行 innerhtml Vue.js可以傳遞$event對象 <body id="app"> <ul> <li v-on:click="say(‘hello!‘, $
js滾動事件實現滾動觸底加載
ans spa 網頁 寫法 round 移動 text som ul li 移動端觸底加載時前端開發過程中常用功能,主要是通過三個值的大小來進行判斷; 首先介紹jquery的寫法,代碼如下: $(window).scroll(function(){ var wind
用Vue來實現音樂播放器(十六):滾動列表的實現
com 作用 efault nor 大小 -s stylus BE ack 滾動列表是一個基礎組件 他是基於scroll組件實現的 在base文件夾下面創建一個list-view文件夾 裏面有list-view.vue組件 <template>