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解析获取JSON数据
Apr 08 jQuery
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
jquery实现企业定位式导航效果
Jan 01 jQuery
实现jquery放大镜的两种方法
Feb 22 jQuery
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
一文快速了解JQuery中的AJAX
May 31 jQuery
jQuery擦除插件eraser使用方法详解
Jan 11 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
html中两种获取标签内的值的方法
Jun 16 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 5.3.0 安装分析心得
2009/08/07 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
SVG实现时钟效果
2018/07/17 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
python算法学习之基数排序实例
2013/12/18 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
python正则表达式的使用
2017/06/12 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
使用tensorflow实现线性回归
2018/09/08 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python的几种主动结束程序方式
2019/11/22 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
乡镇消防安全责任书
2014/07/23 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
萤火虫之墓观后感
2015/06/05 职场文书