日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者

發布時間:2023/12/10 vue 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

非重點的代碼,比如樣式啥的,我就不放上來了,一筆帶過

簡略的寫一下

1. data ()

data () {

paddingBottom: '1.5rem', // 給最外層div一個padding-bottom

// 因為footer是fixed定位 如果padding-bottom為0 數據列表拉到最下面的時候 會有部分數據被footer擋住

isFixed: false, // bar浮動

offsetTop: 0, // 觸發bar浮動的閾值

marginTop: 0, // 觸發bar浮動的同時 給數據列表一個margin-top 防止列表突然上移 會很突兀

advertShow: true, // 廣告顯示

}

2. mounted ()

mounted () {

// 設置初始的 padding-bottom 值為 footer 的高度 +20 防止數據列表拉到最下面被footer擋住 +多少自定

this.paddingBottom = document.querySelector('.footer').offsetHeight + 20 + 'px';

// 設置bar浮動閾值為 #fixedBar 至頁面頂部的距離

this.offsetTop = document.querySelector('#fixedBar').offsetTop;

// 開啟滾動監聽

window.addEventListener('scroll', this.handleScroll);

}

3. methods

methods: {

// 關閉廣告

del () {

this.advertShow = true;

this.$nextTick(() => {

this.paddingBottom = document.querySelector('.footer').offsetHeight + 20 + 'px';

});

},

// 滾動監聽 滾動觸發的效果寫在這里

handleScroll () {

var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

if (scrollTop >= this.offsetTop) {

this.isFixed = true;

this.marginTop = document.querySelector('#fixedBar').offsetHeight + 'px';

} else {

this.isFixed = false;

this.marginTop = 0;

}

}

}

4. destroyed ()

destroyed () {

window.removeEventListener('scroll', this.handleScroll); // 離開頁面 關閉監聽 不然會報錯

}

效果圖

以上這篇開發者。

總結

以上是生活随笔為你收集整理的vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。