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 相关文章推荐
jquery中的sortable排序之后的保存状态的解决方法
Jan 28 Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
jQuery添加删除DOM元素方法详解
Jan 18 Javascript
Bootstrop实现多级下拉菜单功能
Nov 24 Javascript
Bootstrap CSS布局之按钮
Dec 17 Javascript
js获取指定时间的前几秒
Apr 05 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
js读写json文件实例代码
2014/10/21 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
Python函数参数操作详解
2018/08/03 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
医院义诊活动总结
2014/07/04 职场文书
真诚的求职信
2014/07/04 职场文书
毕业生对母校寄语
2015/02/26 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技
JavaScript设计模式之原型模式详情
2022/06/21 Javascript