个人博客 地址:http://www.wenhaofan.com/article/20181106154356

在使用jquery.pjax的时候发现每次加载完成后都会将滚动条滚动至顶部,用户体验极不友好,但是pjax实际上是用的异步加载html,浏览器也不会对点击事件进行操作,于是猜测是在代码中操作了滚动条,于是全局搜索

scrollTop

找到了以下代码

   if (hash) {
var name = decodeURIComponent(hash.slice(1))
var target = document.getElementById(name) || document.getElementsByName(name)[0]
if (target) scrollTo = $(target).offset().top
} if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)

该代码在340行左右,在这里我们可以看见pjax在加载完成后会检查url hash是否为空,如果为空则获取锚点,然后滚动到锚点所在的位置,但是当url hash为空的时候,scrollTo值也依然为0,于是就直接将滚动条滚动到了顶部,这就非常蛋疼了,一般情况下在异步加载完成后我们并不需要滚动条滚动至顶部,所以这个操作异常bug,极其影响体验。

解决方法也很简单,仅需将 if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)移动至if代码块中,让它仅在设置锚点时操作滚动条。

最新文章

  1. MarkdownPad2 Pro v2.4.2.29969 专业中文破解版完美支持table表格语法
  2. javascript常用数组算法总结
  3. typedef block
  4. 【Java】Linux下安装配置Oracle JDK 1.7版本
  5. 51nod1009(1的数目)
  6. 简单运用 activity 的 button 点击事件
  7. asp.net关于Repeater控件中的全选,批量操作
  8. SmtpDlg 调用SMTP
  9. 【Maven篇】---解决Maven线上部署java.lang.ClassNotFoundException和no main manifest attribute解决方法
  10. TCP/IP(五)传输层之细说TCP的三次握手和四次挥手
  11. 调试利器GDB(下)
  12. 自学自用 = B站(操作系统_清华大学(向勇、陈渝)) 未完待续。。
  13. Redux学习(2) ----- 异步和中间件
  14. 自学Python3.4-函数分类(匿名函数)
  15. python2.x到python3.x函数变化
  16. 关于cocos2dx 关键字的问题
  17. mysql中enum类型
  18. [转]好用工具:Oracle SQL Developer
  19. java.io.File中的 pathSeparator 与separator 的区别
  20. C++并发编程 互斥和同步

热门文章

  1. java 正则表达式空格无法匹配
  2. 在服务器上搭建远端git仓库
  3. centos5,6 系统启动流程
  4. idea 编译报错 Build completed with 1 error and 0 warnings in 2 s 113 ms
  5. (LNMP) Nginx_PHP_MariaDB
  6. Fhq Treap [FhqTreap 学习笔记]
  7. 服务治理框架:Spring Cloud Eureka
  8. warning Attribute 'showExpand' must be hyphenated
  9. 多重集组合数 简单dp
  10. scrapy(一)--Pycharm创建scrapy项目