我只是做了一个网页,但在Mobile Safari(iPhone和iPad iOS 5.0.1)有一个错误,有两个按钮固定在右上角。
直到在一个打开到页面其余部分的文本框上单击提交后,这些按钮才会淡入淡出…在页面的其余部分加载并且按钮褪色后,您可以单击其中任一个,并且它们都工作… …
然而,点击它们会导致程序滚动,滚动完成后,你不能再点击任何一个按钮,直到你实际上用手指滚动页面,即使只是一个小的一个像素滚动…
我注意到,在程序化滚动后,如果你点击略微低于TOP按钮,你会看到突出显示,如果你点击BottOM按钮,底部的按钮的操作,这告诉我的错误是,当滚动以编程方式,固定位置按钮仍然与页面的其余部分一起移动,并且不回到其固定位置,直到执行实际的触摸滚动….
有谁知道一个方法吗?
我添加了一个弹出窗口,显示哪个按钮被按下,所以你可以测试它,记住第一次按下按钮(这是工作)后再次按下,它将无法工作,但单击下面的向上按钮,你会看到下来按钮操作发生….
http://www.tsdexter.com/ceos
谢谢您的帮助。
托马斯
(如果你可以指向我可以提交一个bug给苹果,那也是好的,除非已经有)
编辑:只需点击任一提交箭头,你不需要输入一个工资/工资,它有默认值
编辑2:这是一个更简单的例子来显示同样的问题。
http://www.tsdexter.com/MobileSafariFixedPosBug.html
编辑3:Bug报告给苹果
解决方法
我通过添加一个101%高的div,然后(几乎)立即删除它。
尝试:
<style>
.iosfix {
height: 101%;
overflow: hidden;
}
</style>
和当你滚动:
window.scrollTo(0,_NEW_SCROLLTOP_);
$('body').append($('<div></div>').addClass('iosfix'));
setTimeout(function() {
$('.iosfix').remove();
},500);
它也适用于jQuery.scrollTo。
参见示例here。