最近写了一个VUE的web app项目,需要实现某个部位吸顶的效果。即,页面往上滑动,刚好到达该部位时,该部分,固定在顶部显示。
1、监听滚动事件 利用VUE写一个在控制台打印当前的scrollTop, 首先,在mounted钩子中给window添加一个滚动滚动监听事件,
rush:js;">
mounted () {
window.addEventListener('scroll',this.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 举报,一经查实,本站将立刻删除。