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 相关文章推荐
客户端脚本中常常出现的一些问题和调试技巧
Jan 09 Javascript
jQuery UI Autocomplete 体验分享
Feb 14 Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
jQuery完成表单验证的实例代码(纯代码)
Sep 30 jQuery
Vue中使用 setTimeout() setInterval()函数的问题
Sep 13 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
基于javascript实现贪吃蛇小游戏
Nov 25 Javascript
vue实现几秒后跳转新页面代码
Sep 09 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
JavaScript实现一键复制内容剪贴板
Jul 23 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中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php字符串过滤与替换小结
2015/01/26 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
法律专业应届本科毕业生求职信
2013/10/25 职场文书
求职信写作要突出重点
2014/01/01 职场文书
品牌宣传方案
2014/03/21 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
项目负责人岗位职责
2015/02/15 职场文书
MySQL基础(二)
2021/04/05 MySQL
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
python元组打包和解包过程详解
2021/08/02 Python
Python代码实现双链表
2022/05/25 Python