当前位置: 首页 > news >正文

简洁网站首页模板免费的小程序

简洁网站首页模板,免费的小程序,高权重网站怎么发软文,专业做甜点的网站在使用vue-router3.0时候,会发现不同的路由之间来回切换,会滚动到上次浏览的位置,今天就来看看这部分的vue-router中的源码实现。 无论是基于hash还是history的路由切换,都对滚动进行了处理,这里分析其中一种即可。 无…

 

在使用vue-router3.0时候,会发现不同的路由之间来回切换,会滚动到上次浏览的位置,今天就来看看这部分的vue-router中的源码实现。

无论是基于hash还是history的路由切换,都对滚动进行了处理,这里分析其中一种即可。

无论是初始化,或者push,replace都对滚动进行了相应的处理。

下面我们详细看一下这个scroll.js

一、setupScroll

简单介绍下,getStateKey和setStateKey是用来生成和更新history state对应的key,用来存储在positionStore中。

extend方法实现一个简单的对象深度拷贝。positionStore用来存储不同路由对应的滚动位置。

为阻止popstate事件触发浏览器的默认行为,将history.scrollRestoration设置为manual手动控制。为防止用户覆盖history state将history state进行拷贝,注册popstate事件,将移除popstate的方法return出去,在调用处做统一处理。

二、handlePopState

该方法调用保存滚动位置方法,以生成的时间串作为key值。

三、saveScrollPosition

四、handleScroll

该方法会在相应的router变化中被调用,接收四个参数,前三个都已经相当熟悉了,isPop显式的声明是否触发了popstate change,没有触发就不进行滚动的操作。assert处理,如果没有scrollBehavior滚动行为函数,在非生产环境就将错误信息写入控制台。

在re-render完成之后进行滚动,判断shouldScroll是否有then方法,不同情况获取shouldScroll参数不同,之后执行scrollToPosition方法。

五、scrollToPosition

在这里先对传进来的selector进行解析,这里作者的注释很有意思,类似#main[data-attr]的id选择器依然会失败,但是都用了id选择器,再加属性貌似也没啥道理,但是底下的代码对这种情况依然进行的兼容处理。

底下一堆工具方法都是为了根据该selector计算出滚动的位置。

这里用到pageXOffset是有一个小的兼容问题,如下

最后获取到position调用window.scrollTo方法进行滚动。该工具方法会在相对应的路由动作中进行调用,isPop显式的控制是否滚动,

从而实现不同路由记住滚动位置的效果。

-- END --

http://www.yayakq.cn/news/289109/

相关文章:

  • 广州网站制作开发公司旅游扁平化设计网站模板
  • 淘宝实时优惠券网站怎么做的游戏特效培训机构排名
  • 知名网站建设代理桂林网站建设官网
  • 阜阳手机网站建设四川建设网中标公示
  • 网络营销自学网站扬州seo推广
  • 两学一做网站网址大全网站开发流程有哪些
  • 企业网站运维公司网站建站模板模板
  • 做的比较好的旅行网站重庆网建
  • 建设银行深圳天健世纪支行网站怎么设计个人网站
  • 网站可信度验证淮安市做网站
  • 天津网站建设制作设计wordpress必须先登录
  • 软件网站设计师培训wordpress 简码使用
  • 外贸行业网站推广衡阳seo优化首选
  • 类似天书奇谈的网页游戏电脑优化设置
  • php网站开发面试搜索引擎优化人员优化
  • 江苏省城乡建设局网站首页施工企业总工程师述职报告
  • 电子商务概论亿唐网不做网站做品牌网站开发简介
  • 深圳做网站建设的公司建筑公司注册要求
  • wordpress批量采集器搜索引擎关键词优化方案
  • dw使用模板做网站教程网站源码如何安装
  • 网站建设公司哪家好速找盛世传媒asp类似wordpress
  • 佛山网站制作专业公司小程序开发制作流程
  • 福建微网站建设wordpress 首页插件
  • php旅游网站cms个体工商户年报登录入口
  • 元做网站社区信息建设网站
  • 网站图片怎么做的高级wordpress头像管理插件
  • php网站制作工具网络市场前景分析
  • 济南做企业网站的公司jsp网站建设论文
  • 开网店软件整站排名优化品牌
  • 苏州建设信息网站网络顾问