我正在轮播一个2D画布,在桌面上效果很好,但移动空间中有一个小问题.这是一个放大截图:

拇指图像在500ms的过程中旋转约0.2rad.我认为所有的相关代码都在下面.你可以看到,图像的每个顶角都有一些“追踪”.

var duration = 500;

var start = 0;

var stop = 0.287554326;

var step = (stop - start) / 10;

var steps = (stop - start) / step;

var current = 0;

var delay = duration / steps;

var first = true;

if (navigator.userAgent.match(/iP(hone|[ao]d)|android/i)) step *= 1.5;

var rotate_int = setInterval(function() {

if (current >= stop) {

clearInterval(rotate_int);

callback && callback();

return;

}

ctx.clearRect(0,cvs.width,cvs.height);

ctx.translate(cvs.width / 2,cvs.height / 2);

ctx.rotate(step);

current += step;

ctx.translate(cvs.width / -2,cvs.height / -2);

ctx.drawImage(i,0);

if (first) {

first = false;

thumb.hide();

}

},delay);

笔记:

>该代码在桌面上运行良好(Firefox,Chrome,Safari,Opera甚至IE的最新版本)

>我已经测试过以下设备和浏览器:

> iPhone 3GS:Safari,Opera Mini

> iPhone 4S:Safari

> iPad(第1代):Safari

> Android Galaxy S(带姜饼):默认浏览器,Firefox手机

>摩托罗拉Droid X(带姜饼):默认浏览器,Firefox手机

>我没有找到一个桌面浏览器(支持< canvas>),表现出这种行为

>我还没有找到没有展示行为的移动设备

>发布的图像是从iPad放大的截图

>如果重要,< canvas> (同时旋转)正在动画化(通过jQuery),以便在其后面的图像中传输并停止,这在屏幕截图中是可见的.

>有第二个< canvas>在页面上也.它使用相同的大拇指.png,并使用上面发布的相同代码进行旋转,并且还通过不同的背景图像进行动画转换(但是在相反的方向,即一个“竖起大拇指”移动西北,一个东南),并且轨迹也出现在相对于画布上下文的相同位置.

我已经把这堵墙上的所有泥土都扔了,我希望有一些可能导致诊断.有没有人看过这样的东西?我可以尝试不同的方式有没有在HTML5教程网站上错过一些警告标签的警告标签?

==编辑1 ==

Per @ GGG的评论,我删除了UA嗅探器(其旨在减少画布重绘的数量和频率,因为移动浏览器都使用与桌面设置相同的设置),但这只是使路径变得更加明显(例如较厚).然后我把UA嗅探器重新进行了实验,而不是将循环减少50%,实际上增加了500%.再次,这使得小径变得更加显着.然而,似乎这种增厚是渐近的 – 换句话说,通过调整动画速度的参数,我可以有多大的程度来限制轨迹.

==编辑2 ==

Per @ GGG的其他评论,我去编辑图像添加一些透明数据,试图找到一个合适的解决方法.我看到的是,图像突出了画布的顶部和左侧边缘(这是“Photoshop画布”,而不是“HTML5< canvas>”)).当我在顶部和左侧添加了相等的透明数据填充时,条纹问题就消失了.这是原始的PSD(pre me-addition-extra-spacing):

所以我的问题会变成:即使图像填满(非透明像素)整个[Photoshop]画布,为什么我的画布上下文clearRect()行为本身?是否应该抹去画布边界内的任何东西?如果是这样,为什么会留下这几个像素?

==编辑3 ==

经过一番研究,事实证明,Cairo是很多主要的渲染引擎(至少WebKit和Gecko)常用的.就像@JonasWielicki首先提出的那样,开罗图书馆 – 在针对移动执行进行优化时,可能会有点过分吗?

html旋转线条,html5 – 为什么我在移动浏览器上看到旋转的条纹?相关推荐

  1. android酷炫转圈动画,android常用旋转线条加载动画

    想要知道关于更多自定义View的实例,请参考:android自定义View索引 先上个效果图,以免大家跑错地了. 嗯,整个来说呢,除了舍不得充VIP去掉水印之外,其他都挺好的. 下面开始实现我们的效果 ...

  2. 【HTML——旋转线条】(效果+代码)

    代码 下面即为全部源代码喔 ~ HTML--旋转线条.html <!doctype html> <html lang="en">

  3. html5自动旋转图片,HTML5画布旋转图片

    你可以使用canvas'context.translate& context.rotate来旋转你的图像 这里有一个函数来绘制旋转了指定度数的图像: function drawRotated( ...

  4. 用html制作旋转风车,HTML5 Canvas 旋转风车绘制

    写在前面: 亲爱的朋友们大家好,鄙人自学前端,第一次写博客,写的不好的地方,烦请同学们谅解. 在进行教学之前,我想聪明的你已经掌握了基本的Canvas基本操作方法,如果对Canvas还不是很了解,那么 ...

  5. css旋转不围绕圆心,css3:元素总是围绕中心旋转[关闭](css3: element always rotates around center [closed])...

    css3:元素总是围绕中心旋转[关闭](css3: element always rotates around center [closed]) 我有这个演示 . 如图所示,元素围绕其中心旋转,但我正 ...

  6. php 图片压缩旋转,移动端图片上传旋转、压缩问题的解决方案

    本篇文章就给大家带来移动端图片上传旋转.压缩问题的解决方案.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 前言 在手机上通过网页 input 标签拍照上传图片,有一些手机会出现图片 ...

  7. html5画布可以p图,HTML5图像适合发布在画布上

    我正在研究HTML5移动应用程序.我正在使用画布元素和文件上传元素. 每当用户从手机上点击这个文件上传元素.他看到两种选择. 1.选择现有的照片 2.拍摄新照片HTML5图像适合发布在画布上 如果他选 ...

  8. 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面

    弧度一块可能有误,需要再研究 导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上 ...

  9. html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...

    前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页.随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完美的动效设计,给用户带 ...

最新文章

  1. minicom使用总结
  2. 关于img图片的onerror属性
  3. Shell中的${}、##和%%使用范例
  4. Android JNI开发入门之二
  5. Python Tutorial 实践(2)
  6. 算法----(3)选择排序
  7. Spring事务@Transactional注解原理
  8. HGDB单机问题解决—致命错误:已保留的连接位置为执行非复制请求的超级用户预留
  9. struts2拦截器添加及xss攻击的处理
  10. stm32万年历流程图_基于 STM32 RTC的万年历
  11. SUMO/Turorials/Hello SUMO 学习总结
  12. 二值图像的Euclidean distance map(EDM)特征图计算及其优化
  13. 计算机创新应用,计算机的发展及应用创新.ppt
  14. 如何安装arm交叉工具链及问题解决
  15. 转型后的运维太叛逆了!和研发又打起来咋办?丨话题接力
  16. Android系统篇(二)——Android编译核心Build系统
  17. [计算机网络]第二章——应用层
  18. WARNING: The directory ‘/home/xt/.cache/pip‘ or its parent directory is not owned or is not writable
  19. Color dialog box
  20. SpiderFlow平台v0.3.0初次使用并爬取薄荷网的热量和减法功效

热门文章

  1. 瑞禧研究Boc-Val-Dil-Dap及其衍生物(OH/Phe-OMe/Doe/Dap-Nrp/)——抗体药物偶联物
  2. PMP项目经理常用项目管理工具分析
  3. 股票精灵接口的脚本策划
  4. 一文了解RT8059GJ5
  5. 如何在线设计签名?教你签名设计办法
  6. 华为Linux如何安装微信,华为手机怎么重新安装微信?
  7. 怎样用python中matplotlib模块直观的将股票数据展现出来
  8. 2021年浏阴一中高考成绩查询,2021年湖南高考最高分多少分,历年湖南高考状元
  9. Android P (9.0)刘海屏(DisplayCutout)适配方法
  10. android仿微信发状态图片上传