html5图像自动旋转,HTML5 旋转图像

图像360度旋转:

0818b9ca8b590ca3270a3433284dd417.png

html代码:

Document : 图像旋转

Created on : 2016-5-19, 10:53:15

Author : Administrator

--%>

JSP Page

(function(){

if(! window.addEventListener ){return ;}

//canvas对象

var canvas=null;

//canvas的上下文对象

var ctx=null;

//动画的帧率

var fps=60

//图像对象

var image=null;

//旋转角度

var deg=0;

//页面导入时的事件处理

window.addEventListener("load",function(){

//img元素

image=document.getElementById("logo");

//图像尺寸

var w=parseInt(image.width);

var h=parseInt(image.height);

//创建canvas对象

canvas=document.createElement("canvas");

canvas.width=w;

canvas.height=h;

//canvas的上下文对象

ctx=canvas.getContext("2d");

//不支持canvas的浏览器返回

if( !ctx ){return ;}

//将图像绘制如canvas中

ctx.drawImage(image, 0, 0);

//用canvas替换image元素

image.parentNode.replaceChild(canvas,image);

//canvas的动画开始

move();

},false);

//旋转动画

function move(){

//canvas尺寸

var cw=parseInt(canvas.width);

var ch=parseInt(canvas.height);

//初始化变形矩阵

ctx.setTransform(1,0,0,1,0,0);

//清空canvas

ctx.clearRect(0,0,cw,ch);

//计算变形矩阵

var m11=Math.cos(deg * Math.PI / 180);

var dx=(cw/2)-(cw * m11/2);

//变形矩阵设置

ctx.setTransform(m11,0,0,1,dx,0);

//将变形后的图像绘制入canvas中

ctx.drawImage(image,0,0);

//旋转角度递增

deg++;

deg=deg % 360;

//使用timer定时绘制下一幅图

setTimeout(move,1000/fps);

}

})();

首先将显示图标的imag元素的根对象作为参数传递给drawImage()方法,将图像粘贴到Canvas上。随后调用replaceChild()方法将imag元素替换为Canvas元素。此时img元素并没有从文档中消失,img元素的根对象可以用于绘制各帧,而且可无限次使用。最后,调用生成动画处理的函数move()。

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值