使用HTML5的canvas进行绘图,android4.0以上,有一大部分手机会经常出现clearRect无效的bug。

解决方案:
方案1:

canvas.width=canvas.width

来代替

canvas.clearRect().getContext("2d").clearRect()

但是,这样做的后果,就是另有一小部分(比如国内的三星NOTE2和S4等)会出现浏览器卡死的情况。
方案2:
就是用不透明背景,对于每侦重绘的游戏或应用来说,不透明背景就不会存在清屏的问题,当然这其实是选择了绕行,对于需要将canvas背景设置成透明的情况还是没有解决。

方案3:

canvas.clearRect(0, 0, w, h);
canvas.style.visibility = ‘hidden’; // Force a change in DOM
canvas.offsetHeight; // Cause a repaint to take play
canvas.style.visibility = ‘inherit’; // Make visible again

这个会导致延时。

方案4:


canvas.clearRect(0, 0, w, h);
canvas.style.display = ‘none’;// Detach from DOM
canvas.offsetHeight; // Force the detach
canvas.style.display = ‘inherit’; // Reattach to DOM

这个会产生锯齿,但是我认为是目前最好的方案了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 在线阅读 http://interview.poetries.top[http://interview.poetr...
    前端进阶之旅阅读 114,759评论 24 450
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,199评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,333评论 0 11
  • 亲们,我终于参训啦[呲牙][呲牙] 和很多超级大大大咖一起[呲牙][呲牙] 64名学员,分成8个班,我有幸成为其中...
    初心艾健康阅读 219评论 0 1