vue实现固定位置显示功能

 更新时间:2019年05月30日 10:43:40   作者:Huhui-coder  
这篇文章主要介绍了vue实现固定位置显示功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

在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实现固定位置显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢! 

相关文章

  • Vue 兄弟组件通信的方法(不使用Vuex)

    Vue 兄弟组件通信的方法(不使用Vuex)

    本篇文章主要介绍了Vue 兄弟组件通信的方法(不使用Vuex),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • vue项目实现图形验证码

    vue项目实现图形验证码

    这篇文章主要为大家详细介绍了vue项目实现图形验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • SpringBoot+Vue开发之Login校验规则、实现登录和重置事件

    SpringBoot+Vue开发之Login校验规则、实现登录和重置事件

    这篇文章主要介绍了SpringBoot+Vue开发之Login校验规则、实现登录和重置事件,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Vue.JS项目中5个经典Vuex插件

    Vue.JS项目中5个经典Vuex插件

    在本文中,将向你展示5个特性,你可以通过 Vuex 插件轻松地添加到下一个项目中。一起来学习下。
    2017-11-11
  • Vue Cli3 创建项目的方法步骤

    Vue Cli3 创建项目的方法步骤

    Vue CLI是一个用于快速Vue.js开发的完整系统。这篇文章主要介绍了Vue Cli3 创建项目的方法步骤,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • 详解Vue中的keep-alive

    详解Vue中的keep-alive

    这篇文章主要为大家介绍了Vue中的keep-alive,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • vue报错Error:Cannot find module 'fs/promises'的解决方式

    vue报错Error:Cannot find module 'fs/promises'的解决方

    最近的项目需要用到vue/cli,但是用cnpm安装vue/cli的时候报错了,下面这篇文章主要给大家介绍了关于vue报错Error:Cannot find module 'fs/promises'的解决方式,需要的朋友可以参考下
    2022-11-11
  • 浅谈Vue+Ant Design form表单的一些坑

    浅谈Vue+Ant Design form表单的一些坑

    本文主要介绍了浅谈Vue+Ant Design form表单的一些坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 使用vant 自定义弹框全过程

    使用vant 自定义弹框全过程

    这篇文章主要介绍了使用vant 自定义弹框全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • vue中v-show和v-if的异同及v-show用法

    vue中v-show和v-if的异同及v-show用法

    这篇文章主要介绍了vue中v-show和v-if的异同 ,通过代码详解v-show用法,本文给大家介绍的非常详细具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06

最新评论