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样式.

最新文章

  1. jmeter之连接mysql和SQL Server配置
  2. 用 正则表达式 限定XML simpleType 定义
  3. DOM_04之常用对象及BOM
  4. C#相关
  5. 小谈KVC中KeyPath的集合运算符
  6. 如何方便的控制css3动画开始时间点与持续时间
  7. Windows server2003 + sql server2005 集群配置安装
  8. 无法远程访问虚拟机中的EM (Oracle Enterprise Manager)
  9. 伪分布式环境下命令行正确运行hadoop示例wordcount
  10. Objective-C总Runtime的那点事儿(一)消息机制【转】
  11. 查看堵塞的SQL
  12. Excel01-不同的单元格输入同一数据
  13. LeeCode-Remove Element
  14. c++,派生类对象可以对基类赋值,基类对派生类不可以赋值
  15. java 服务治理办法
  16. SpringBoot实践 - SpringBoot+MySql+Redis
  17. Scut游戏引擎改造兼容Codis。
  18. 687. Repeats spoj (后缀数组 重复次数最多的连续重复子串)
  19. UIKit视图动画的微扩展
  20. Java核心技术第八章——泛型程序设计(1)

热门文章

  1. 项目总结之Oauth2.0免登陆及相关知识点总结
  2. WMS程序部署
  3. oracle数据库查询语句case的用法
  4. PostgreSQL 锁等待诊断详解
  5. C# Common Code
  6. Spring Boot HikariCP 一 ——集成多数据源
  7. [leetcode]149. Max Points on a Line多点共线
  8. XWIKI离线WAR包部署(LDAP登录)
  9. create-react-app创建项目并用git上传至GitHub及展示预览效果
  10. Java 字符编码(三)Reader 中的编解码