vue滑动吸顶及锚点定位的示例代码


Posted in Javascript onMay 10, 2020

在上篇文章给大家介绍了vue实现吸顶、锚点和滚动高亮按钮效果 感兴趣的朋友可以点击查看https://3water.com/article/172365.htm

今天给大家继续分享vue滑动吸顶及锚点定位的代码,具体内容如下所示:

Vue项目中需要实现滑动吸顶以及锚点定位功能。template代码如下:

<template>
<div class="main">
 <div id='menu'>
  <ul>
   <li v-for="item in tabList" @click='clickTab'></li>
  </ul>
 </div>
 <div id='div1'></div>
 <div id='div2'></div>
 <div id='div3'></div>
</div> 
</template>

(1)滑动吸顶:

监听scroll事件,获取页面的滚动距离,一旦滚动距离大于目标值,实现滑动吸顶功能。

public isFixed = false;
public mounted() {
 this.menuTop = (document.getElementById('menu') as any).offsetTop;
 window.addEventListener('scroll', this.handleScroll);
 }
public handleScroll() {
 const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; // 获取滑动距离
 if (scrollTop < this.menuTop ) {
  this.isFixed = false;
 } else {
  this.isFixed = true; // 设置fixed定位
 }
 }
public destroyed() {
 window.removeEventListener('scroll', this.handleScroll);
}

(2)锚点定位。点击tab,设置页面滚动距离。

public clickTab(index: number) {
 this.activeIndex = index;
 this.isFixed = true;
 const menuHeight= (document.getElementById('menu') as any).offsetHeight;
 const div1= (document.getElementById('div1') as any).offsetTop;
 const div2= (document.getElementById('div2') as any).offsetTop;
 const div3= (document.getElementById('div3') as any).offsetTop;
 const div4= (document.getElementById('div4') as any).offsetTop;
 switch (index) {
  case 0: document.body.scrollTop = document.documentElement.scrollTop = div1 - menuHeight; break;
  case 1: document.body.scrollTop = document.documentElement.scrollTop = div2 - menuHeight; break;
  case 2: document.body.scrollTop = document.documentElement.scrollTop = div3 - menuHeight; break;
  case 3: document.body.scrollTop = document.documentElement.scrollTop = div4 - menuHeight; break;
  default: document.body.scrollTop = document.documentElement.scrollTop = div1- menuHeight;
 }
 }

总结

到此这篇关于vue滑动吸顶及锚点定位的示例代码的文章就介绍到这了,更多相关vue 滑动吸顶锚点定位内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
如何实现iframe(嵌入式帧)的自适应高度
Jul 26 Javascript
JavaScript让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
jquery的键盘事件修改代码
Feb 24 Javascript
另一个javascript小测验(代码集合)
Jul 27 Javascript
深入理解关于javascript中apply()和call()方法的区别
Apr 12 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
详解JavaScript常量定义
Jan 03 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
vue中tab选项卡的实现思路
Nov 25 Javascript
ionic3双击返回退出应用的方法
Sep 17 Javascript
webpack+vue.js构建前端工程化的详细教程
May 10 #Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 #Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
May 10 #Javascript
angula中使用iframe点击后不执行变更检测的问题
May 10 #Javascript
JavaScript 装逼指南(js另类写法)
May 10 #Javascript
js中!和!!的区别与用法
May 09 #Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
May 09 #Javascript
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
python将人民币转换大写的脚本代码
2013/02/10 Python
Python去掉字符串中空格的方法
2014/03/11 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python的移位操作实现详解
2019/08/21 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
python中怎么表示空值
2020/06/19 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
上海微创软件面试题
2012/06/14 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
创先争优制度
2014/01/21 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书