当前位置:
编程学习
>
JS
>>
js实现点击图片左右旋转
js实现点击图片左右旋转,非常简单实用
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js实现点击图片左右旋转</title> <script type="text/javascript" language="javascript"> function rotate(id, angle, whence) { var p = document.getElementById(id); if (!whence) { p.angle = ((p.angle == undefined ? 0 : p.angle) + angle) % 360; } else { p.angle = angle; } if (p.angle >= 0) { var rotation = Math.PI * p.angle / 180; } else { var rotation = Math.PI * (360 + p.angle) / 180; } var costheta = Math.cos(rotation); var sintheta = Math.sin(rotation); if (document.all && !window.opera) { var canvas = document.createElement('img'); canvas.src = p.src; canvas.height = p.height; canvas.width = p.width; canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11=" + costheta + ",M12=" + (-sintheta) + ",M21=" + sintheta + ",M22=" + costheta + ",SizingMethod='auto expand')"; } else { var canvas = document.createElement('canvas'); if (!p.oImage) { canvas.oImage = new Image(); canvas.oImage.src = p.src; } else { canvas.oImage = p.oImage; } //alert(canvas.width) canvas.style.width = canvas.width = Math.abs(costheta * canvas.oImage.width) + Math.abs(sintheta * canvas.oImage.height); canvas.style.height = canvas.height = Math.abs(costheta * canvas.oImage.height) + Math.abs(sintheta * canvas.oImage.width); var context = canvas.getContext('2d'); context.save(); if (rotation <= Math.PI / 2) { context.translate(sintheta * canvas.oImage.height, 0); } else if (rotation <= Math.PI) { context.translate(canvas.width, -costheta * canvas.oImage.height); } else if (rotation <= 1.5 * Math.PI) { context.translate(-costheta * canvas.oImage.width, canvas.height); } else { context.translate(0, -sintheta * canvas.oImage.width); } context.rotate(rotation); context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height); context.restore(); } canvas.id = p.id; canvas.angle = p.angle; p.parentNode.replaceChild(canvas, p); } //向右旋转 function rotateRight(id, angle) { rotate(id, angle == undefined ? 90 : angle); } //向左旋转 function rotateLeft(id, angle) { rotate(id, angle == undefined ? -90 : -angle); } </script> </head> <body> <P> <a href="javascript:void(0)" onclick="rotateRight('xiaoyaxiao.com',90);">右转</a> <a href="javascript:void(0)" onclick="rotateLeft('xiaoyaxiao.com',90);">左转</a></p> <img src="http://www.zhaoxi.net/images/mymake/2015/3/201503091758175819.gif" id="xiaoyaxiao.com" /> </body> </html>
上一个:
纯css实现鼠标放上去图片翻转180度
下一个:
在php里面什么时候使用is_file和file_exists以及is_dir
更多图片编程知识:
AJAX架构之Dojo篇
在IE模态窗口中自由查看HTML源码的方法
prototype试用整理资料
使用js服务端语言nodejs和express建个人站点
如何在extjs的PANEL里用d3.js来绘图
用js检测两个线段是否相交
更多
JS
疑问解答:
几个验证11位手机号码格式的js代码
js把图片转换成 base64代码
js把base代码转换成图片
JS 将 base64编码的图片转化为图片文件
js中的定时器
js如何获得FCKeditor控件的值
用js限制投票的cookie .目前设置的为:<input type="" class="" onclick="'window.location...
JS验证,这块“牛皮”反复修改都不能实现
在JS中使用DOM模型
如何用JS 获取本地文件夹的文件列表
js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?
求实现自动生成图片缩略图的JS代码
JS脚本网页问题
js,代码中"object"和"Object"区别?
js+flash实现网页图片切换效果,出现边框,单击激活此控件。
站长资源库
asp
php
Delphi
Matlab
JSP
Foxpro
JS
C/C++
C#/ASP.NET
VC++
JAVA
VB
汇编语言
html/css
CGI
XML/UML
wap
网站相关
网页素材
python
微信小程序
thinkphp
如果你遇到
编程学习
难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,