HTML
非重点的代码,比如样式啥的,我就不放上来了,一笔带过
简略的写一下html代码,可以对照文章最后的效果图看,应该不难理解
<div :style="{ paddingBottom: paddingBottom}"> <header>资源信息</header> <div> <!-- 公司信息 浏览量 --> </div> <div id="fixedBar" :class="{ fixedBar: isFixed }"> <!-- 品名 --> <!-- 规格 --> <!-- 产地 --> <!-- 单价 --> </div> <div :style="{ marginTop: marginTop }"> <!-- 数据列表 --> </div> <footer class="footer"> <button>订阅</button> <button>关闭</button> <div v-show="advertShow"> <a @click="del">×</a> <img src="/UploadFiles/2021-04-02/广告.jpg">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 实现滚动监听 导航栏置顶的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 群星《心光》[320K/MP3][227.63MB]
- 张秀卿.1997-我不是无情的人【巨石】【WAV+CUE】
- 群星.1986-宝丽金难忘的回忆【宝丽金】【WAV+CUE】
- 王艺翔.2024-至暖(EP)【乐人】【FLAC分轨】
- 樊桐舟《流年微词HQCD》WAV+CUE
- Rachmaninoff-SymphonicDances-BerlinerPhilharmoniker,KirillPetrenko(2024)[24-96]
- 岡部啓一《NieRGestaltReplicantOrchestralArrangementAlbum》24-96\FLAC
- 群星《心光》[FLAC/分轨][307.76MB]
- 许茹芸《讨好》[WAV+CUE][1G]
- 唐磊《丁香花》[WAV+CUE]
- 刘德华.2001-天开了【BMG】【WAV+CUE】
- 群星.2013-顾嘉辉大师经典演唱会3CD【爱我音乐】【WAV+CUE】
- 费翔.2000-费常翔念2CD【环球】【WAV+CUE】
- Rachmaninoff-SuitesNos.12,TheSleepingBeauty-MikuOmine,TakakoTakahashi(2024)[24-
- 童丽《影视金曲(1:1黄金母盘版)》[WAV]