微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vue实现某元素吸顶或固定位置显示监听滚动事件

最近写了一个VUE的web app项目,需要实现某个部位吸顶的效果。即,页面往上滑动,刚好到达该部位时,该部分,固定在顶部显示

1、监听滚动事件 利用VUE写一个在控制台打印当前的scrollTop, 首先,在mounted钩子中给window添加一个滚动滚动监听事件,

rush:js;"> mounted () { window.addEventListener('scroll',this.handleScroll) },

然后在方法中,添加这个handleScroll方法

rush:js;"> handleScroll () { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop console.log(scrollTop) },

控制台打印结果:

2、监听元素到顶部的距离 并判断滚动的距离如果大于了元素到顶部的距离时,设置searchBar为true,否则就是false

offsetTop) { this.searchBarFixed = true } else { this.searchBarFixed = false } },

先写一个该元素固定到顶部的样式,isFixed(less写法)

rush:js;"> .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样式

rush:xhtml;">

固定后的结果:

注意,如果离开该页面需要移除这个监听的事件,不然会报错。

rush:js;"> destroyed () { window.removeEventListener('scroll',

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文地址:https://www.jb51.cc/vue/34729.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐