iphone safari不支持position fixed的解决办法

最近一直在做移动web开发,开发过程中遇到了许多问题,mobile safari不支持position: fixed就是一件很头疼的事情。需求是这样的,许多pc web页面的导航都是固定的,比如google的首页,现在要将这种固定的导航转移到mobile web下,很自然地就会想到position:fixed; bottom: 0,android下运行正常,但在iphone safari下就会出现问题,当滚动条滚动时,导航条就会出现屏幕的上方,黑乎乎的一块,很不协调。许多人推荐iscroll、jquery mobile等框架,但有时效果不如意或是得阅读框架源码进行二次开发,会花费好长一段时间的。经过一段时间的研究,找到了一种解决办法,比较简便,但效果还是比不上pc web。

  1: <div id="fixnav" style=" position: absolute; z-index: 1000; height: 50px; opacity: 0.9;">nav</div>
  2: <script type="text/javascript">
  3: $(window).scroll(function(){
  4:     // 重点就是下面这一条语句的实现
  5:     $("#fixnav").css({top: window.innerHeight + window.scrollY - $("#fixnav").outerHeight() });    
  6: });        
  7: </script>

不过最新ios5已经支持了position: fixed,给广大web前端开发者带来了福音。


---end


作者:清流鱼

出处:http://www.cnblogs.com/qingliuyu/

新浪微博:http://weibo.com/qingliuyu

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

posted @ 2012-05-02 20:42  清流鱼  阅读(16237)  评论(3编辑  收藏  举报