首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS7位置:已修复;外观丑陋

iOS7位置:已修复;外观丑陋
EN

Stack Overflow用户
提问于 2014-03-21 05:55:55
回答 3查看 14.9K关注 0票数 4

我知道iScroll和我已经使用jQuery手机很长一段时间了,我知道他们都解决了这个问题,但我想自己做,而不是包括一个大的框架。我的问题是,jQuery手机是如何解决这个问题的:修复了iOS设备上的问题?目前我所有的固定定位元素只会在滚动结束时改变位置,但它应该总是固定在顶部,而不仅仅是在滚动的末尾。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-11 00:02:59

我也有同样的问题。我有一个固定的元素在身体上,这是非常错误的。对我来说,用height:auto;代替height:100%是可行的。完整代码:

代码语言:javascript
运行
复制
body,
html{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:auto; /* iOS position:fixed; elements fix (not 100%) */
    min-height:100%;
    overflow-x:hidden;
}
票数 5
EN

Stack Overflow用户

发布于 2014-03-21 06:11:14

iOS 7上的position:fixed运行得很好,实际上(有一些小问题,例如抖动可能是取决于某些因素的问题),所以我认为你可能试图模仿粘性滚动(当滚动到某个y偏移量时,元素会修复)。

不幸的是,对于iOS,你不能轻易做到这一点(当你滚动或轻击时,所有的JavaScript都会停止,这就是为什么position:fixed会在事件结束时发生。如果你幸运的话,你可以希望用户摇摆和定位:固定在触摸移动上...)

正如您所提到的,有一些解决方法可以应用overflow和模仿原生滚动(例如iScroll)。这些工作,但它们是内存密集型的(谢谢,平滑滚动的硬件加速),所以性能可能是一个问题,这取决于你的需求。

对于iOS 7,position有一个值,即sticky。这真的很好用,如下所示:

http://html5-demos.appspot.com/static/css/sticky.html

http://caniuse.com/css-sticky

唯一的缺点是它仅限于iOS 6.1和7。但是,如果旧设备不是问题,position:sticky是一个很好的解决方案,因为它是本机解决方案。

票数 2
EN

Stack Overflow用户

发布于 2014-09-09 22:33:00

只需尝试使用内部滚动(overflow-y: scroll)制作块,并将它们像内联块一样放置在彼此附近。因此,您将获得独立的可滚动内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22545981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档