Scrolling DIV and Canvas flicker on iPhone/iPad touch

  最近一直在优化一个网站,为了使其能在移动设备上有更好的用户体验,我们做了许多调整,包括将所有的Flash和Silverlight控件替换成HTML5,以及添加一些针对触屏的事件等。在下一篇文章中我会介绍一些针对触屏开发的技巧。

  DIV元素默认的滚动条在iPhone和iPad会消失,其实这个问题不是代码或CSS本身的问题。Apple默认将其系统上所有的滚动条都隐藏起来了,当然这也包括HTML元素。在Apple设备上,默认行为是当用户触摸并滑动屏幕时,所在的元素如果支持滚动条并且滚动条可用,那么将立即显示滚动条并支持滑动。默认情况下滚动条都是不显示的。这里有两篇文章介绍了如何在Apple设备上给DIV添加滚动条。

http://www.cnblogs.com/weinan/archive/2013/01/05/2832800.html

http://cubiq.org/scrolling-div-on-iphone-ipod-touch

  几个关键的CSS样式:

height: 450px;
overflow: hidden;
-webkit-overflow-scrolling:touch;

   另外,在Apple设备上,如果页面上有动态生成的Canvas对象并且能响应touch事件,当你用手指点击并在Canvas上滑动时它会莫名其妙地闪烁,要解决这个问题只需要给Canvas对象添加下面这个样式即可:

-webkit-tap-highlight-color:rgba(0,0,0,0);

 

posted @ 2013-05-17 05:24  Jaxu  阅读(994)  评论(0编辑  收藏  举报