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',

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

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
<el-form-item label="入库类型" ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...