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 相关文章推荐
jquery tab插件制作实现代码
Jun 22 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
js读取配置文件自写
Feb 11 Javascript
JavaScript淡入淡出渐变简单实例
Aug 06 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
AngularJS实现ajax请求的方法
Nov 22 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
vue.js实现的绑定class操作示例
Jul 06 Javascript
Vue使用axios出现options请求方法
May 30 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
vue中v-model对select的绑定操作
Aug 31 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
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
python中的函数用法入门教程
2014/09/02 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
简述Python中的进程、线程、协程
2016/03/18 Python
Python对List中的元素排序的方法
2018/04/01 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
Python面向对象程序设计示例小结
2019/01/30 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
仓库保管员岗位职责
2013/12/20 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
公司晚会策划方案
2014/05/17 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技