CN109508438A - 基于vue滚动事件的动态锚点的实现方法 - Google Patents
基于vue滚动事件的动态锚点的实现方法 Download PDFInfo
- Publication number
- CN109508438A CN109508438A CN201811406788.0A CN201811406788A CN109508438A CN 109508438 A CN109508438 A CN 109508438A CN 201811406788 A CN201811406788 A CN 201811406788A CN 109508438 A CN109508438 A CN 109508438A
- Authority
- CN
- China
- Prior art keywords
- anchor point
- vue
- scroll
- function
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明属于web网页技术领域,其公开了一种基于vue滚动事件的动态锚点的实现方法,通过对滚动事件的监听,在vue中利用动态锚点实现页面的平滑跳转。该方法包括:在vue表单的父组件中增加类名作为钩子,在其子组件中设置函数,通过将offset的值赋给Scroll,实现锚点的功能;当用户点击锚点的时候,通过offsetTop和scrollTop的比较确定所需滑动的方向和距离大小;将要滑动的距离进行分段,并通过window的计时器功能来设置每一段的距离的移动;在创建vue实例的时候,在vue生命周期中mounted阶段设置scroll函数,当用户滑动滚动条的时候,触发scroll函数计算滚动条移动的距离,通过对比从而确认此时对应激活的锚点,完成对于锚点css样式的修改。
Description
技术领域
本发明属于web网页技术领域,具体涉及一种基于vue滚动事件的动态锚点的实现方法。
背景技术
随着互联网技术的普及,网站的浏览已经成为了用户生活当中必不可少的一部分,然而网站内容的多样性可能对用户的浏览造成困扰,而动态锚点的实现则可以让用户快速查找到自己所需的网页部分,对网站的结构有清晰的认识。vue框架作为当下热门的前端开发框架,采用自底向上增量开发的设计,开发过程当中只关注视图层,而且便于与第三方库或既有项目整合,当与现代化的工具链以结及各种支持类库合使用时,Vue也完全能够为复杂的单页应用提供驱动。这些都使得vue框架相对于react、angular等框架显得更加轻量、简洁、高效而且易于上手。
目前在网站开发中锚点的实现,主要是获取跳转部分的id或者class再通过html中链接直接完成跳转或者是利用jquery来实现跳转,使用的方式比较传统;而在最新的vue框架中,jquery的animate()方法的不支持和对滚动事件的监听的独特方式都导致了这些方式并不适合,因此本申请主要就是针对vue框架,通过对vue滚动事件的监听,完成动态锚点的实现。
发明内容
本发明所要解决的技术问题是:提出一种基于vue滚动事件的动态锚点的实现方法,通过对滚动事件的监听,在vue中利用动态锚点实现页面的平滑跳转。
本发明解决上述技术问题所采用的技术方案是:
基于vue滚动事件的动态锚点的实现方法,包括:
锚点的实现和平滑跳转:在vue表单的父组件中增加类名作为钩子,在其子组件中设置函数,通过将offset的值赋给Scroll,实现锚点的功能;当用户点击锚点的时候,通过offsetTop和scrollTop的比较确定所需滑动的方向和距离大小;将要滑动的距离进行分段,并通过window的计时器功能来设置每一段的距离的移动;
动态锚点的状态更改:在创建vue实例的时候,在vue生命周期中mounted阶段设置scroll函数,当用户滑动滚动条的时候,触发scroll函数计算滚动条移动的距离,通过对比从而确认此时对应激活的锚点,完成对于锚点css样式的修改。
作为进一步优化,所述通过offsetTop和scrollTop的比较确定所需滑动的方向和距离大小,将要滑动的距离进行分段,并通过window的计时器功能来设置每一段的距离的移动,具体包括:
在元素子组件中通过函数计算得到此时scroll和offset的值,计算两者的差值;若差值为正,将该差值除以设计所要移动的次数,用scroll的值减去所得到的数字,将浏览器的计时器设置合适的时间,依次完成所有的次数,实现向上滑动;若差值为负,则将该差值除以设计所要移动次数获取的值加上scroll的值,在计时器下依次完成每一段移动,实现向下滑动。
本发明的有益效果是:
可以让用户在浏览网页时快速跳转到所需部分,减少操作时间。同时用户在拖动滚动条时能够实时分辨出所浏览的内容,提高了用户的操作体验,实现网站布局的整体优化,而且通过锚点完成网页设计便于后期对网站内容的分模块维护、管理。
附图说明
图1为锚点的实现和平滑跳转的实现流程图;
图2为锚点状态的实时改变流程图。
具体实施方式
本发明旨在提出一种基于vue滚动事件的动态锚点的实现方法,通过对滚动事件的监听,在vue中利用动态锚点实现页面的平滑跳转。在本发明中,当用户在点击锚点时候,通过对滚动事件的监听,将网页跳转到相对应的部分,而当用户拖动滚动条到不同的位置,其对应的锚点的状态也将发生改变,从而便于用户对于网页的认知、浏览。
实现本发明方案需要解决的问题包括:一是如何实现对滚动事件的监听;二是在vue中如何实现页面的平滑跳转。
解决的途径为:一、在vue的mounted的生命周期完成监听。二是通过将跳转的距离分成小块,使用window计时器来分步完成跳转,从而在视觉上实现平滑跳转的效果。
在具体实现上,基于vue滚动事件的动态锚点的实现方法包括以下部分:
监听滚动事件:
用户在拖动滚动条的时候将会触发滚动事件,而在vue中我们将在生命周期中来完成监听:每个Vue实例在被创建时都要经过一系列的初始化过程(例如,需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等),Mounted作为生命周期中的一个状态此时各个模块已经创建但数据尚未加载,我们可以在此期间函数完成对滚动事件的监听,触发我们事先设置好的函数。
锚点的实现与改变:
本发明主要是通过在vue表单中的父组件中增添类名来作为钩子,再获取到距离父元素顶端的值offsetTop的值,将其赋值给进度条scrollTop的值,完成滚动条的滑动,从而来实现页面的快速跳转;
通过对于滚动事件的监听,我们获取到此时相应锚点是否处于激活的状态,修改处于激活状态的锚点的属性值,从而实现锚点与滚动条内容之间的匹配。
锚点的平滑滚动:
通过对于scroll和ofset两者的数据的比较,计算两者之间的差值来确定元素将要滑动的距离,将这部分按照实际的需求在确保用户感受到平滑的滚动原则下将其划分为若干部分,再通过window的计时器来实现每一段的移动从而完成滚动。
实施例:
锚点的具体实现和平滑跳转:
通过element-ui插件在页面中插入进度条,在其父组件中增加类名,再在其子组件中设置函数,计算element中的距离父元素顶端的值offsetTop的值,将该值赋值给进度条scrollTop,实现锚点的功能;
当用户点击锚点的时候,在元素子组件中通过函数计算得到此时scroll和offset的值,计算两者的差值;若为正的话:将该差值除以设计所要移动的次数,用scroll的值减去所的到的数字,将浏览器的计时器设置合适的时间,依次完成所有的次数,实现向上滑动;若为负:将差除以移动次数获取的值加上scroll的值,在计时器下依次完成每一段移动,实现向下的滑动。锚点的具体实现和平滑跳转的流程参见图1。
锚点状态的改变:
在创建vue实例时候在生命周期中的mounted创建scroll函数,当用户在滑动滚动条的时候,触发函数计算出此时scrollTop的数值,将该数值与其他元素进行一一比较,然后将匹配到的锚点的css样式进行修改,锚点状态的改变流程参见图2。
Claims (2)
1.基于vue滚动事件的动态锚点的实现方法,其特征在于,包括:
锚点的实现和平滑跳转:在vue表单的父组件中增加类名作为钩子,在其子组件中设置函数,通过将offset的值赋给Scroll,实现锚点的功能;当用户点击锚点的时候,通过offsetTop和scrollTop的比较确定所需滑动的方向和距离大小;将要滑动的距离进行分段,并通过window的计时器功能来设置每一段的距离的移动;
动态锚点的状态更改:在创建vue实例的时候,在vue生命周期中mounted阶段设置scroll函数,当用户滑动滚动条的时候,触发scroll函数计算滚动条移动的距离,通过对比从而确认此时对应激活的锚点,完成对于锚点css样式的修改。
2.如权利要求1所述的基于vue滚动事件的动态锚点的实现方法,其特征在于,所述通过offsetTop和scrollTop的比较确定所需滑动的方向和距离大小,将要滑动的距离进行分段,并通过window的计时器功能来设置每一段的距离的移动,具体包括:
在元素子组件中通过函数计算得到此时scroll和offset的值,计算两者的差值;若差值为正,将该差值除以设计所要移动的次数,用scroll的值减去所得到的数字,将浏览器的计时器设置合适的时间,依次完成所有的次数,实现向上滑动;若差值为负,则将该差值除以设计所要移动次数获取的值加上scroll的值,在计时器下依次完成每一段移动,实现向下滑动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811406788.0A CN109508438A (zh) | 2018-11-23 | 2018-11-23 | 基于vue滚动事件的动态锚点的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811406788.0A CN109508438A (zh) | 2018-11-23 | 2018-11-23 | 基于vue滚动事件的动态锚点的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109508438A true CN109508438A (zh) | 2019-03-22 |
Family
ID=65750450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811406788.0A Pending CN109508438A (zh) | 2018-11-23 | 2018-11-23 | 基于vue滚动事件的动态锚点的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109508438A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647709A (zh) * | 2019-09-12 | 2020-01-03 | 北京达佳互联信息技术有限公司 | 一种表单构建方法、装置和存储介质 |
CN113742610A (zh) * | 2020-05-29 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种对网页内容进行定位的方法、装置和存储介质 |
CN114327688A (zh) * | 2022-03-15 | 2022-04-12 | Tcl通讯科技(成都)有限公司 | 基于微前端的数据处理方法、框架、存储介质及终端设备 |
CN114428657A (zh) * | 2022-01-11 | 2022-05-03 | 上海万物新生环保科技集团有限公司 | 一种在H5端基于Taro框架的滑动方法与设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677314A (zh) * | 2015-12-24 | 2016-06-15 | 小米科技有限责任公司 | 滚动事件的处理方法、装置和设备 |
-
2018
- 2018-11-23 CN CN201811406788.0A patent/CN109508438A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677314A (zh) * | 2015-12-24 | 2016-06-15 | 小米科技有限责任公司 | 滚动事件的处理方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
WISE.WRONG: "Vue 爬坑之路(七)—— 监听滚动事件 实现动态锚点", 《HTTPS://WWW.CNBLOGS.COM/WISEWRONG/P/6495726.HTML》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647709A (zh) * | 2019-09-12 | 2020-01-03 | 北京达佳互联信息技术有限公司 | 一种表单构建方法、装置和存储介质 |
CN110647709B (zh) * | 2019-09-12 | 2022-07-22 | 北京达佳互联信息技术有限公司 | 一种表单构建方法、装置和存储介质 |
CN113742610A (zh) * | 2020-05-29 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种对网页内容进行定位的方法、装置和存储介质 |
CN114428657A (zh) * | 2022-01-11 | 2022-05-03 | 上海万物新生环保科技集团有限公司 | 一种在H5端基于Taro框架的滑动方法与设备 |
CN114428657B (zh) * | 2022-01-11 | 2024-04-05 | 上海万物新生环保科技集团有限公司 | 一种在H5端基于Taro框架的滑动方法与设备 |
CN114327688A (zh) * | 2022-03-15 | 2022-04-12 | Tcl通讯科技(成都)有限公司 | 基于微前端的数据处理方法、框架、存储介质及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109508438A (zh) | 基于vue滚动事件的动态锚点的实现方法 | |
CN105740315B (zh) | 一种多种屏幕响应式网页布局调整的方法 | |
Chen et al. | Project scheduling for collaborative product development using DSM | |
CN101299688B (zh) | 一种获取网页区域点击数量的方法 | |
RU2009105135A (ru) | Предоставление возможности веб-аналитики для интерактивных веб-приложений | |
JP2014523576A5 (zh) | ||
CN109063144A (zh) | 可视化网络爬虫方法及装置 | |
CN101588403A (zh) | 在上网手机屏幕上通过手指动作浏览网页的方法 | |
US9251281B2 (en) | Web browsing using placemarks and contextual relationships in a data processing system | |
CN103984500A (zh) | 网页内容的显示方法和装置 | |
Díaz et al. | End-user browser-side modification of web pages | |
CN103034655B (zh) | 一种用户行为信息的收集方法、系统及相关设备 | |
US20120131557A1 (en) | Interactive troubleshooting flowcharts | |
CN108008929A (zh) | 一种分屏pc网页浏览器的建立方法及系统 | |
CN102609522A (zh) | 一种网站信息与客户端程序的集成交互控制方法及系统 | |
CN105578294B (zh) | 浏览切换处理方法、装置及系统 | |
CN101520809B (zh) | 一种网络视频的显示方法和装置 | |
EP2754040B1 (en) | Visualization and editing of composite layouts | |
CN102222087A (zh) | 通过激活显示专用搜索导航窗口进行搜索导航的方法 | |
CN104133608B (zh) | 新标签页打开方法及装置 | |
Kirsh et al. | Horizontal mouse movements (HMMs) on web pages as indicators of user interest | |
CN106339893A (zh) | 推广信息的曝光情况处理方法及装置 | |
KR100697809B1 (ko) | 아이프레임―레이어를 이용한 홈페이지 제작방법 | |
Gouvernet et al. | Path causal analysis of a model of a functional organization between defense mechanisms and coping strategies | |
US20150309917A1 (en) | Automation Framework Interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190322 |