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实现鼠标滑过预览图片大图效果的方法
Apr 26 jQuery
jquery中each循环的简单回滚操作
May 05 jQuery
jQuery实现锚点向下平滑滚动特效示例
Aug 29 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
jquery实现轮播图特效
Apr 12 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 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
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
js切换div css注意的细节
2012/12/10 Javascript
js使浏览器窗口最大化实现代码(适用于IE)
2013/08/07 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python日志模块logging简介
2015/04/13 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
python中wx模块的具体使用方法
2020/05/15 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
阳光体育活动总结
2014/04/30 职场文书
预备党员综合考察材料
2014/05/31 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
公司人事任命通知
2015/04/20 职场文书
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers