vue监听滚动事件-元素固定位置显示
2024-10-11 11:59:51
1、监听滚动事件
用VUE写一个在控制台打印当前的scrollTop用来测试是否执行:
mounted () {
window.addEventListener('scroll', this.handleScroll)
} methods: {
handleScroll () {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
console.log(scrollTop)
}
}
2、监听元素到顶部的距离 并判断滚动的距离如果大于了元素到顶部的距离时,为元素添加 isFixed的class
handleScroll () {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
var offsetTop = document.getElementById('bar').offsetTop
if (scrollTop > offsetTop) {
this.barFixed = true
} else {
this.barFixed = false
}
}
.isFixed{
position:fixed;
background-color:#Fff;
top:0;
z-index:999;
}
<div :class="{isFixed: barFixed}"></div>
PS:如果离开页面需要移除这个监听的事件
destroyed () {
window.removeEventListener('scroll', this.handleScroll)
}
总结:整体思路为监听滚动距离是否大于元素到顶部的距离,来判断是否为元素添加固定css样式.
最新文章
- jmeter之连接mysql和SQL Server配置
- 用 正则表达式 限定XML simpleType 定义
- DOM_04之常用对象及BOM
- C#相关
- 小谈KVC中KeyPath的集合运算符
- 如何方便的控制css3动画开始时间点与持续时间
- Windows server2003 + sql server2005 集群配置安装
- 无法远程访问虚拟机中的EM (Oracle Enterprise Manager)
- 伪分布式环境下命令行正确运行hadoop示例wordcount
- Objective-C总Runtime的那点事儿(一)消息机制【转】
- 查看堵塞的SQL
- Excel01-不同的单元格输入同一数据
- LeeCode-Remove Element
- c++,派生类对象可以对基类赋值,基类对派生类不可以赋值
- java 服务治理办法
- SpringBoot实践 - SpringBoot+MySql+Redis
- Scut游戏引擎改造兼容Codis。
- 687. Repeats spoj (后缀数组 重复次数最多的连续重复子串)
- UIKit视图动画的微扩展
- Java核心技术第八章——泛型程序设计(1)