如何检测iPhone上滚动页面的比例
How can I detect what proportion of a page has been scrolled through on iPhone?
我想计算用户向下滚动页面的比例。我这样做的逻辑包括以下计算:
(pageYOffset + innerHeight) + document.documentElement.offsetHeight
当用户到达页面底部时,这应该(大约)等于1。
根据本页,以下不等式应始终成立:
document.documentElement.offsetHeight >= pageYOffset + innerHeight
但当我通过XCode运行iOS模拟器-iPhone 6/iOS 8.1并滚动到屏幕底部时,我得到了以下数字,其中pageYOffset
实际上超过了document.documentElement.offsetHeight
:
pageYOffset = 1809
innerHeight = 628
pageYOffset + innerHeight = 2437
document.documentElement.offsetHeight = 1577 // surprisingly small
document.documentElement.scrollHeight = 1577
document.documentElement.clientHeight = 559
当运行iOS模拟器-iPad Air/iOS 8.1通过XCode时,不等式两个值更接近:
pageYOffset = 1286
innerHeight = 985
pageYOffset + innerHeight = 2271
document.documentElement.offsetHeight = 2270
document.documentElement.scrollHeight = 2270
document.documentElement.clientHeight = 960
对此有什么解释吗?有没有更好的方法来计算滚动页面的比例?
我通过复制JQuery方法实现了预期的结果:
var d = document.documentElement, b = document.body;
var documentHeight = Math.max(d.scrollHeight, d.clientHeight, d.offsetHeight,
b.scrollHeight, b.offsetHeight);
document.body.scrollHeight
比其他四个字段大,给了我想要的结果。
相关文章:
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- jquery scrollTO iPhone/iPad没有't向右滚动
- iPhone锚点,scrollTop,scrollTo显示移动按钮栏,但不会滚动或跳到锚点
- 使用iOS7的iPhone上未启动JavaScript滚动事件
- 在SAPUI5项目中使用sap.ui.ux3.Shell时,无法在iphone上滚动
- 使用按钮滚动iframe-iPhone
- CSS/JS转换:translate3d和滚动-在Android上流畅,在iPhone上没有动力
- 如何检测iPhone上滚动页面的比例
- 有什么方法可以隐藏搜索栏,直到用户向上滚动..类似于iPhone上的消息应用程序
- 在iPhone上的Safari中滚动到特定位置
- 想要专注,但不要;我不想滚动iPhone网络应用程序
- jQuery addClass使窗口在Android和iPhone上滚动回顶部
- Highcharts 4.0 iPhone/触摸屏滚动
- 在iPhone上滚动iframe'不起作用
- 在iPad和iPhone上滚动iframe
- 桌面触摸屏iPhone风格的滚动IE与jquery
- 启用/禁用iPhone/iPad的滚动,但启用网站滚动
- 水平滚动在iphone上不起作用
- iPhone选择滚轮导致页面滚动到顶部时,触摸下拉
- 在JavaScript中,iPhone浏览器是否有一个开始滚动事件