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 相关文章推荐
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
Dec 31 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
javascript学习小结之prototype
Dec 03 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
AngularJs 动态加载模块和依赖
Sep 15 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
微信小程序实现时间戳格式转换
Jul 20 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 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随机生成福彩双色球号码的2种方法
2013/02/04 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
Aptana调试javascript图解教程
2009/11/30 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
JS判断是否长按某一键的方法
2016/03/02 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
Python文件的读写和异常代码示例
2017/10/31 Python
python实现flappy bird游戏
2018/12/24 Python
python实现邮件自动发送
2019/08/10 Python
Python 变量的创建过程详解
2019/09/02 Python
python  logging日志打印过程解析
2019/10/22 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
欧克利英国官网:Oakley英国
2019/08/24 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
大学生村官工作感言
2014/01/10 职场文书
大学军训感言200字
2014/02/26 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
供用电专业求职信
2014/07/07 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
优秀教师先进材料
2014/12/16 职场文书
个人求职自荐信范文
2015/03/06 职场文书
法人代表证明书范本
2015/06/18 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
JavaScript文档对象模型DOM
2021/11/20 Javascript