在项目需求中需要实现一个滚轴联动锚点的功能
创新互联公司主营八公山网站建设的网络公司,主营网站建设方案,重庆APP开发,八公山h5小程序设计搭建,八公山网站营销推广欢迎八公山等地区企业咨询
效果图如下:
功能代码demo如下:
<template> <div class="container"> <div class="wrapper"> <div class="section" v-for="(item, index) in list" :key="index" :> <div :>{{item.name}}</div> </div> </div> <div id="nac" ></div> <nav > <a class="nav1" v-for="(item, index) in navList" :key="index" @click="jump(index)" :class="index==0?'current':''">{{item}}</a> </nav> </div> </template> <script> export default { data(){ return { scroll: '', list: [{ name: "第一条", backgroundcolor: "#90B2A3" }, { name: "第二条", backgroundcolor: "#A593B2" }, { name: "第三条", backgroundcolor: "#A7B293" }, { name: "第四条", backgroundcolor: "#0F2798" }, { name: "第五条", backgroundcolor: "#0A464D" }], navList: [1, 2, 3, 4, 5] } }, methods: { dataScroll: function () { this.scroll = document.documentElement.scrollTop || document.body.scrollTop; }, jump(index) { let jump = document.getElementsByClassName('section'); // 获取需要滚动的距离 let total = jump[index].offsetTop; // Chrome document.body.scrollTop = total; // Firefox document.documentElement.scrollTop = total; // Safari window.pageYOffset = total; // $('html, body').animate({ // 'scrollTop': total // }, 400); }, loadSroll: function () { var self = this; var $navs = $(".nav1"); var sections = document.getElementsByClassName('section'); for (var i = sections.length - 1; i >= 0; i--) { if (self.scroll >= sections[i].offsetTop - 100) { $navs.eq(i).addClass("current").siblings().removeClass("current") break; } } } }, watch: { scroll: function () { this.loadSroll() } }, mounted() { window.addEventListener('scroll', this.dataScroll); } } </script> <style> * { padding: 0; margin: 0; } .nav1 { display: block; width: 40px; height: 40px; text-align: center; line-height: 40px; background: #eee; margin: 10px 0; } .current { color: #fff; background: red; } </style>
以上这篇Vue监听滚动实现锚点定位(双向)示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持创新互联。
网页名称:Vue监听滚动实现锚点定位(双向)示例
本文路径:https://www.cdcxhl.com/article18/pcejgp.html
成都网站建设公司_创新互联,为您提供品牌网站建设、云服务器、网站营销、外贸网站建设、网站改版、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联