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 相关文章推荐
JS下拉框内容左右移动效果的具体实现
Jul 10 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
详解JavaScript中localStorage使用要点
Jan 13 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
Sep 15 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
React Navigation 使用中遇到的问题小结
May 08 Javascript
微信小程序如何自定义table组件
Jun 29 Javascript
JS阻止事件冒泡的方法详解
Aug 26 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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 代码优化的42条建议 推荐
2009/09/25 PHP
linux iconv方法的使用
2011/10/01 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JavaScript在网页中画圆的函数arc使用方法
2015/11/13 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
JS实现星星海特效
2019/12/24 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Python占用的内存优化教程
2019/07/28 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Python绘制动态水球图过程详解
2020/06/03 Python
python 深度学习中的4种激活函数
2020/09/18 Python
python 用struct模块解决黏包问题
2020/11/07 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
业务部经理岗位职责
2014/01/04 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
计算机专业自荐信
2015/03/05 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python