vue+jquery+lodash实现滑动时顶部悬浮固定效果


Posted in jQuery onApril 28, 2018

本文实例为大家分享了vue实现滑动时顶部悬浮固定效果的具体代码,供大家参考,具体内容如下

这个效果是一个项目中抽出来的一个demo效果。

vue+jquery+lodash实现滑动时顶部悬浮固定效果

前期准备:

1. 引入jQ

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>

引入lodash.js

npm install lodash -D

fixTop.vue组件的

<template>
 <div class="fixtop2">

  <header class="header" ref="header"></header>

  <div class="nav" ref="nav" :class="{isFixed:isFixed}">
   <div class="box" v-for="(item,index) in list" :key="index">
    {{item.title}}
   </div>
  </div>

  <ul class="content">
   <li v-for="(item,index) in new Array(20)" :key="index">{{index+1}}</li>
  </ul>

 </div>
</template>
<script>
var throttle = require('lodash/throttle'); //从lodash中引入的throttle节流函数
export default {
 name: 'navScroll2',
 data() {
  return {
   list: [
    { title: 'AAAA', id: 1 },
    { title: 'BBBB', id: 2 },
    { title: 'CCCC', id: 3 },
    { title: 'DDDD', id: 4 },
   ],
   isFixed: false, //是否固定的
   throttleScroll: null, //定义一个截流函数的变量
  };
 },
 methods: {
  //滚动的函数
  handleScroll() {
   let h = $(this.$refs.header).outerHeight(); //header的高度
   let wh = $(window).scrollTop(); //滚动的距离的,为什么这里使用的jq,因为不用考虑的什么的兼容问题
   let navH = $(this.$refs.nav).outerHeight(); //nav的高度

   if (wh > h) {
    this.isFixed = true;
   } else {
    this.isFixed = false;
   }
  },
 },

 mounted() {
  //写在掉接口的里面的
  this.$nextTick(() => {
   //这里使用监听的scroll的事件,为什么要使用的节流函数,如果不使用的,页面一直在滚动计算的,这样在
   //使用手机时候,出现非常卡的,隔一段时间计算,大大降低了性能的消耗(具体的好处自己去查资料)
   window.addEventListener('scroll', this.throttleScroll, false);
  });

  this.throttleScroll = throttle(this.handleScroll, 100);
 },
 deactivated() {
  //离开页面需要remove这个监听器,不然还是卡到爆。
  window.removeEventListener('scroll', this.throttleScroll);
 },
};
</script>
<style lang="scss" scoped>
.fixtop2 {
 min-height: 100vh;
}

.header {
 height: 5rem;
 width: 100%;
 background-color: red;
}

.nav {
 display: flex;
 width: 100%;
 background-color: pink;
 &.isFixed {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
 }
 .box {
  font-size: 0.3rem;
  padding: 0 0.3rem;
  height: 0.9rem;
  line-height: 0.9rem;
  color: #333333;
  flex: 1;
 }
}

.content {
 height: 20rem;
 li {
  width: 100%;
  height: 1rem;
  border-bottom: 1px solid #000;
 }
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery树插件zTree使用方法详解
May 02 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
JS文件中加载jquery.js的实例代码
May 05 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
Aug 09 jQuery
jquery ajax加载数据前台渲染方式 不用for遍历的方法
Aug 09 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jquery分页优化操作实例分析
Aug 23 jQuery
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
jquery ajax 请求小技巧实例分析
Nov 11 jQuery
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 #jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 #jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 #jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 #jQuery
jQuery length 和 size()区别总结
Apr 26 #jQuery
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 #jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 #jQuery
You might like
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
php多进程应用场景实例详解
2019/07/22 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
vue页面切换过渡transition效果
2018/10/08 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python更改已存在excel文件的方法
2018/05/03 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
介绍一下Java的安全机制
2012/06/28 面试题
2014年党课学习材料
2014/05/11 职场文书
软件售后服务承诺书
2014/05/21 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
见习报告的格式
2014/11/04 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript