vue实现固定位置显示功能


Posted in Javascript onMay 30, 2019

在vue项目中实现吸顶效果.

比如说,我们要实现的功能是导航栏在页面下滑到一定位置之后,便固定不定。

首先:要在mounted生命周期内监听'scroll'事件,事件触发后,执行一个处理滚动的函数。

window.addEventListener('scroll', this.handleScroll)
  methods:{
handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 var offsetTop = document.querySelector('#searchBar').offsetTop
 if (scrollTop > offsetTop) {  //判断是否到达了顶部
  this.searchBarFixed = true
 } else {
  this.searchBarFixed = false
 }
}
 }

完整源代码如下:

<template>
<div>
 <div class="nav"></div>
<div class="searchBar" id="searchBar">
 <ul :class="searchBarFixed == true ? 'isFixed' :''"> //用v-bind绑定样式
  <li>区域<i class="iconfont icon-jiantouxia"></i></li>
  <li>价格<i class="iconfont icon-jiantouxia"></i></li>
  <li>房型<i class="iconfont icon-jiantouxia"></i></li>
  <li>更多<i class="iconfont icon-jiantouxia"></i></li>
 </ul>
</div>
<div class="content">
</div>
</div>
</template>
<script>
 export default {
  components:{
  },
mounted () {
 window.addEventListener('scroll', this.handleScroll)
},
    data(){
     return {
      searchBarFixed:false
    } 
 },
  methods:{
handleScroll () {
 var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
 var offsetTop = document.querySelector('#searchBar').offsetTop
 if (scrollTop > offsetTop) {
  this.searchBarFixed = true
 } else {
  this.searchBarFixed = false
 }
},
 }
 }
</script>
<style lang="less" scope>
.nav{
 height: 250px;
}
.content{
 height: 1900px;
}
.searchBar{
 .isFixed{
  position:fixed;
  background-color:#Fff;
  top:0;
  z-index:999;
 }
 ul {
  width:100%;
  height: 40px;
  line-height: 40px;
  display: flex;
  li {
   list-style: none;
   font-size: 0.8rem;
   text-align: center;
   flex: 1;
   i {
    font-size: 0.9rem;
    padding-left: 5px;
    color: #ccc;
   }
  }
  border-bottom: 1px solid #ddd;
 }
}
</style>

总结

以上所述是小编给大家介绍的vue实现固定位置显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢! 

Javascript 相关文章推荐
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
Jan 07 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
AngularJS基础 ng-cloak 指令简单示例
Aug 01 Javascript
Vue概念及常见命令介绍(1)
Dec 08 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
Feb 08 Javascript
vue 使用自定义指令实现表单校验的方法
Aug 28 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
搭建一个Koa后端项目脚手架的方法步骤
May 30 #Javascript
JS使用cookie保存用户登录信息操作示例
May 30 #Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
May 30 #Javascript
Vue使用axios出现options请求方法
May 30 #Javascript
vue动态注册组件实例代码详解
May 30 #Javascript
实用的Vue开发技巧
May 30 #Javascript
vue-router的两种模式的区别
May 30 #Javascript
You might like
javascript css float属性的特殊写法
2008/11/13 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
小程序实现录音功能
2020/09/22 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
Python对字符串实现去重操作的方法示例
2017/08/11 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
如何查看python关键字
2021/01/17 Python
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
如何唤起类中的一个方法
2013/11/29 面试题
外贸专业求职信
2014/03/09 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL