1.实际需求

  (移动端项目)当往下滑动到一定距离时,显示导航栏,导航栏定位在顶部,当向上滑动并小于那个距离时,导航栏隐藏。

2.解决方案

  实时监测浏览器滚动高度,绑定onscroll事件,具体详情见此文--https://github.com/merrier/mobile-scroll-events,此文介绍的很详细,包括在Android 和 ios上的兼容性问题,以及处理方案。下面说点此文没有的。

3.期间所遇问题

  1. scrollY & pageYOffset 
      当时因未知原因,使用scrollTop在ios上测试失败,后在上文链接中的参考文章onscroll Event Issues on Mobile Browsers中,发现里面的实例使用的window.scrollY,可以实时反映滚动条滚动高度,即便是惯性滚动也能成功反映出。pageYOffset是scrollY的别名,区别在于pageYOffset的兼容性比较好。
  2. 关于pageYOffset出现的bug问题 
      官方给出的定义为只读,然而实际情况却是如下:(实例为仿百度做的)

(1)绑定onscroll事件

(2)导航切换,页面滚动到222px的地方,不显示上方的搜索框内容

(3)页面初始进去,没什么问题,效果正常。但是当切换了导航后,问题就来了,滚动到顶部,导航却出现了,

(4)观察到打印出的window.pageYOffset,在切换了导航后一直为 222, what??????

这个怎么看怎么像是被赋值了,说好的只读呢?(暂未理解。。。)

(5)最后的解决办法,就是把window.pageYOffset去掉了,不用效果也是正常的(当时阴差阳错才用到这个)

转载于:https://www.cnblogs.com/shenmissing/p/9072921.html

onscroll在移动端的使用相关推荐

  1. javaScript PC端网页特效

    PC端网页特效 1. 元素偏移量 offset 系列 1.1 offset 概述 1.2 offset 与 style 区别 2. 元素可视区 client 系列 2.1 立即执行函数 2.2 loa ...

  2. 移动端的touch事件处理

    简要的探讨一下移动端 touch 事件处理几个坑,以及相应的简单处理方法. click 穿透 假设有个弹出层,上面有个关闭的按钮支持 touchend 触发后关闭,若正好下方有个元素支持 click ...

  3. vite+ts+vue组合式api-c端-移动端项目(保姆级教学)

    文章目录 一.项目创建准备工作 1.配置vite和ts默认项 2.配置路由命名 3.配置环境源env 4.二次封装axios 5.配置反向代理 6.测试请求接口 7.配置rem,配置移动端 8.配置v ...

  4. 移动端+京东移动端首页制作

    一:移动端的viewport 手机拥有了浏览器的初期,人们并没有专门为移动设备设计页面,造成的直接结果就是,访问的页面是直接将电脑页面进行缩放,操作起来有诸多不便,viewport就是用来解决这个问题 ...

  5. 移动端、PC端 网页特效

    移动端网页特效 标题触屏事件 移动端浏览器兼容性较好,不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方.比如触屏事件 touch(也称触摸事件),A ...

  6. IOS端 vux中scroll滚动自动回弹到顶部或者左侧的解决办法

    IOS端 vux中scroll滚动自动回弹到顶部或者左侧的解决办法 问题表象 在滑动的时候,偶发性出现自动回弹到顶部的现象,通过onScroll回调发现scrollTop为-1造成回弹,开始寻找为什么 ...

  7. android avm灰色,APICloud AVM多端开发案例深度解析(上)--点餐app开发

    AVM多端开发是APICloud定义的一套新的代码编写标准(DSL):基于标准Web Components组件化思想,兼容Vue / React语法特性,通过一次编码,分别编译为Android和iOS ...

  8. APICloud AVM多端开发 | 《外卖app开发》项目源码深度解析(上)

    为了让开发者更加快速的学习和了解APICloud多端开发技术,APICloud平台特别推出一款多端源码-<餐饮点餐>,可以体验一套代码编译Android和iOS app+小程序. AVM多 ...

  9. android 电商app组件化,APICloud AVM多端开发案例深度解析(一)--生鲜电商app开发

    AVM多端开发是APICloud定义的一套新的代码编写标准(DSL):基于标准Web Components组件化思想,兼容Vue / React语法特性,通过一次编码,分别编译为Android和iOS ...

最新文章

  1. python语法知识_Python基础语法知识汇总(学习党的最爱!)
  2. java Android版_java-Android系统版本
  3. MspEmu 一阶段小结
  4. python学习笔记四-列表
  5. Microsoft Azure云服务停机!系水泵未知原因关闭导致
  6. file input 点击没反应_动态input file多文件上传到后台没反应的解决方法!!!
  7. clone()与image和 cloneTo()
  8. getResourceAsStream总是返回null以及intellij总是提示Argument ‘inputStream‘ might be null
  9. css3 animation 动画属性简介
  10. CouchDB与Couchbase:区别何在,Membase又将如何?
  11. MySQL深度剖析之数据在磁盘上存储(2021)
  12. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之22---BDS的分发流程...
  13. Android UI基础教程 目录
  14. redis字符串的创建,set、mset、setex、setnx
  15. 【计算机组成原理】冯诺伊曼结构和计算机性能指标
  16. 计算机一级补考53分能过吗,我考了53分
  17. python中util是哪个包_使用Python的package机制如何简化utils包设计详解
  18. C语言多线程之“哲学家就餐”问题
  19. PTA解封日期C语言
  20. 巧妙利用标签TAG做长尾关键词上首页

热门文章

  1. 如何构建一个基于IEC61499 的“云化PLC“
  2. STM32单片机扫雷游戏TFT触摸操作单片机小游戏
  3. Win10笔记本触摸板在按键时或刚按完键后无法正常使用的问题
  4. easy excel date 类型解析报错_9 个绝对用得上的excel日期公式,赶紧拿走!
  5. 个性篮球队名_你的篮球个性是什么
  6. Numpy 数组索引
  7. mysql查询IN索引无效的问题【已解决】
  8. 井字棋游戏(电脑先)
  9. 1.超时未支付订单处理
  10. 嵌入式端音频开发(Unisound篇)之 7.1 蜂鸟M离线语音芯片简介