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 相关文章推荐
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
js中opener与parent的区别详细解析
Jan 14 Javascript
jQuery 文本框得失焦点的简单实例
Feb 19 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
零基础轻松学JavaScript闭包
Dec 30 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
Vue Router 实现动态路由和常见问题及解决方法
Mar 06 Javascript
搭建一个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
PHP4和PHP5共存于一系统
2006/11/17 PHP
PHP DataGrid 实现代码
2009/08/12 PHP
PHP技术开发技巧分享
2010/03/23 PHP
php实现简单洗牌算法
2013/06/18 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
jquery easyui使用心得
2014/07/07 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
第二篇Bootstrap起步
2016/06/21 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python实现可逆简单的加密算法
2019/03/22 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
python实现图片中文字分割效果
2019/07/22 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
python调用百度API实现人脸识别
2020/11/17 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
求职信的最佳写作思路
2014/02/01 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技