热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

这个效果是一个项目中抽出来的一个demo效果。前期准备:1.引入jQ

这个效果是一个项目中抽出来的一个demo效果。
这里写图片描述
前期准备:
1. 引入jQ

<script src&#61;"https://cdn.bootcss.com/jquery/3.2.1/jquery.js">script>

  1. 引入lodash.js

npm install lodash -D

fixTop.vue组件的

<template><div class&#61;"fixtop2"><header class&#61;"header" ref&#61;"header">header><div class&#61;"nav" ref&#61;"nav" :class&#61;"{isFixed:isFixed}"><div class&#61;"box" v-for&#61;"(item,index) in list" :key&#61;"index">{{item.title}}div>div><ul class&#61;"content"><li v-for&#61;"(item,index) in new Array(20)" :key&#61;"index">{{index&#43;1}}li>ul>div>
template>
<script>
var throttle &#61; require(&#39;lodash/throttle&#39;); //从lodash中引入的throttle节流函数
export default {name: &#39;navScroll2&#39;,data() {return {list: [{ title: &#39;AAAA&#39;, id: 1 },{ title: &#39;BBBB&#39;, id: 2 },{ title: &#39;CCCC&#39;, id: 3 },{ title: &#39;DDDD&#39;, id: 4 },],isFixed: false, //是否固定的throttleScroll: null, //定义一个截流函数的变量};},methods: {//滚动的函数handleScroll() {let h &#61; $(this.$refs.header).outerHeight(); //header的高度let wh &#61; $(window).scrollTop(); //滚动的距离的&#xff0c;为什么这里使用的jq&#xff0c;因为不用考虑的什么的兼容问题let navH &#61; $(this.$refs.nav).outerHeight(); //nav的高度if (wh > h) {this.isFixed &#61; true;} else {this.isFixed &#61; false;}},},mounted() {//写在掉接口的里面的this.$nextTick(() &#61;> {//这里使用监听的scroll的事件&#xff0c;为什么要使用的节流函数&#xff0c;如果不使用的&#xff0c;页面一直在滚动计算的&#xff0c;这样在//使用手机时候&#xff0c;出现非常卡的&#xff0c;隔一段时间计算&#xff0c;大大降低了性能的消耗&#xff08;具体的好处自己去查资料&#xff09;window.addEventListener(&#39;scroll&#39;, this.throttleScroll, false);});this.throttleScroll &#61; throttle(this.handleScroll, 100);},deactivated() {//离开页面需要remove这个监听器&#xff0c;不然还是卡到爆。window.removeEventListener(&#39;scroll&#39;, this.throttleScroll);},
};
script>
<style lang&#61;"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>


推荐阅读
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • Vue cli2.0 项目中使用Monaco Editor编辑器
    monaco-editor是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与VisualStudioCode功能几乎相同。在项目中可能会用带代码编 ... [详细]
  • 小白的Python 学习笔记(八)推导式详解
    大家好,今天我总结一下Python的推导式,首先让我们来看定义推导式(comprehensions)是Python的一种独有特性,是可以从一个数据序列构建另一个新的数据序列的结构体 ... [详细]
  • 如何在Vue项目中安装和使用VUX组件?
    vux2模板fork自webpack模板,基本和官方同步。1、默认为webpack2模板npminstallvue-cli-g如果还没安装vueinitairyla ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • phpcomposer 那个中文镜像是不是凉了 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • 部署Maven环境
    JDK:在maven3.3以上的版本需要JDK版本1.7,内存:没有最低限制。磁盘:1G可用磁盘空间。操作系统: ... [详细]
  • 1.修改babelrc文件{presets:[es2015,react,stage-1],plugins:[transform-decorators-lega ... [详细]
author-avatar
爱谢哎谢哀谢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有