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 相关文章推荐
精通Javascript系列之数值计算
Jun 07 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
JSON 数字排序多字段排序介绍
Sep 18 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
bootstrap精简教程_动力节点Java学院整理
Jul 14 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
vue cli4.0项目引入typescript的方法
Jul 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
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
js tab 选项卡
2009/04/26 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
10种JavaScript最常见的错误(小结)
2019/06/21 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
init进程的作用
2015/08/20 面试题
人事主管的岗位职责
2013/11/16 职场文书
暑期培训班策划方案
2014/08/26 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
党校学习个人总结
2015/02/15 职场文书
捐款通知怎么写
2015/04/24 职场文书
我的1919观后感
2015/06/03 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
python实现简单石头剪刀布游戏
2021/10/24 Python