这两天帮某个项目处理后事,本以为可以轻松搞定,不成想又发现了一个bug.....
背景描述:ios5 提出了支持 position:fixed ,于是乎大家觉得让浮动的图层固定在屏幕最下方容易多了,赶紧用上吧。可是呢。。。页面上又有好多地方需要用到 scrollTo 控制滚动条移动,尤其是页面刚加载完毕需要让浏览器默认的 url 栏消失,一般都用 scrollTo(0,0) 或 scrollTo(0,1) 之类的。。。当这两者混合时就出现问题了, 浮动的div 虽然是你看到的在最下方,但是实际上这个div 内的触控点全都漂移了。
(画外音:通过这件事情,我们明白了一个道理:不能只相信你的眼睛....)
用 iphone 访问地址:http://ztree.me/issueTest/iosFixed.html (注意,此 bug 在 iphone5上不存在!应该是 ios6 系统修正了这个bug。)
你就可以重现上图的问题,看触屏的位置,那里没有任何内容,但是点击后会看到灰色阴影,点击后 alert 44,这说明 click 44 这个 li 的位置实际上漂移到了那里。
bug 描述:通过这个 Demo 可以基本确定 bug 的原因——利用 scrollTo 滚屏时,会导致 position:fixed 的图层视图不变,但对应的 DOM 实际响应位置却跟随 滚动条一起移动了,并未进行 fixed 的修正,从而导致了这个bug 的产生。
解决方案:经过简单测试发现,出现这种 bug 后,只需要用手移动一下屏幕就没问题了,所以尝试在 执行了 scrollTo 后,立刻改变 body 的高度,哪怕是1个像素也可,然后这个世界就清净了!!
不过记住了,要利用 setTimeout !想看源码,直接右键看演示页面的源码吧!
最后,如果你有更好的方法处理这个问题 或 发现我的测试出现了失误,也希望赶紧告诉我.....
分享到:
相关推荐
主要介绍了详解iOS中position:fixed吸底时的滑动出现抖动的解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
假如setprecision(n)与setiosflags(ios::fixed)适用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。 假如与setiosnags(ios::scientific)适用, 可以控制指数表示法的小数位数。...
position_fixed 完美兼容IE6
《iOS10快速开发:18天零基础开发一个商业应用》
position:sticky用法 position:sticky是一个新的css3属性,它的表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的...
iOS boost asio demo
iOS应用逆向工程:分析与实战.azw3 iOS应用逆向工程:分析与实战.azw3 iOS应用逆向工程:分析与实战.azw3
iOS开发试题大全:笔试面试一千题,包含1000道iOS试题和参考答案,题型包含:判断题、单选题,多选题和面试题。分为这套资料共分为"语法","常识","界面","iOS","操作","数据结构","多线程","网络","多媒体","安全"十...
第二部分为工具篇,介绍一系列基于Mac和iOS平台的配套工具,并且重点讲解其中的class-dump、Theos、Reveal、IDA、GDB等5个工具的使用方法,前3个侧重于使用,后2个侧重于分析。第三部分为理论篇,主要讲述iOS逆向/...
Intermediate iOS Programming with Swift: iOS 10 and Swift 3 by Simon Ng English | 21 Jun. 2017 | ASIN: B0733C5K1D | 790 Pages | AZW3 | 37.88 MB Learn by Doing It's not just about the theory or syntax...
UIStackView 的 iOS7 & iOS8 通用方案:TZStackView,可与 UIStackView 无缝衔接.zip,iOS 7.x和iOS 8.x的uistackview副本
第二部分为工具篇,介绍一系列基于Mac和iOS平台的配套工具,并且重点讲解其中的class-dump、Theos、Reveal、IDA、GDB等5个工具的使用方法,前3个侧重于使用,后2个侧重于分析。第三部分为理论篇,主要讲述iOS逆向/...
IOS应用源码——ios设置界面demo:基本的工具库都有了!.zip
iOS 开发小帮手:帮你快速打开 iOS 模拟器设备的程序目录,或者在终端中操作。.zip,使用simsim浏览终端或查找程序中的ios应用程序文件夹。快速,稳定,免费替代炖肉。
IOS应用源码之ios设置界面demo:基本的工具库都有了!.rar
// ios_base :: fixed是设置cout为定点输出格式// ios_base :: floatfileld是设置输出时按照浮点格式进行输出,小数点后面有6位 例子: #include int main() { using namespace std; cout.setf(ios::fixed,ios_...
Phonegap项目中,使用js脚本调用ios中OC代码,需要使用Phonegap提供的一个脚本插件:cordova.js
iOS 7 Programming Fundamentals: Objective-C, Xcode, and Cocoa Basics by Matt Neuburg (Author) Publisher: O’Reilly Media (October 2013) Language: English ISBN-10: 1491945575 ISBN-13: 978-...
音频直播-ios
通过阅读本书,你将学习 Swift 面向对象的概念、理解如何使用 Apple 的开发工具,以及探索 Cocoa 是如何提供 iOS 应用所需的底层功能的。