首页 > 编程 > JavaScript > 正文

vue实现固定位置显示功能

2019-11-19 11:25:48
字体:
来源:转载
供稿:网友

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表