javascript图片360°旋转

王朝学院·作者佚名  2010-07-08
窄屏简体版  字體: 小  |  中  |  大  |  超大  

【程序源码】

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title> ImageRotation </title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<style type="text/css">

#demo { cursor:pointer; position:absolute;filter:PRogid:DXImageTransform.Microsoft.Matrix(sizingmethod="auto expand");}

</style>

</head>

<body>

<div id="container" style="width:500px;height:350px;position:relative;margin:0 auto">

<div id="demo">

<img src="http://images.cnblogs.com/cnblogs_com/bluedream2009/201609/o_mm.jpg" width="500" height="333" />

</div>

</div>

<script>

var Img = function() {

var T$ = function(id) { return document.getElementById(id); }

var ua = navigator.userAgent,

isIE = /msie/i.test(ua) && !window.opera;

var i = 0, sinDeg = 0, cosDeg = 0, timer = null ;

var rotate = function(target, degree) {

target = T$(target);

var orginW = target.clientWidth, orginH = target.clientHeight;

clearInterval(timer);

function run(angle) {

if (isIE) { // IE

cosDeg = Math.cos(angle * Math.PI / 180);

sinDeg = Math.sin(angle * Math.PI / 180);

with(target.filters.item(0)) {

M11 = M22 = cosDeg; M12 = -(M21 = sinDeg);

}

target.style.top = (orginH - target.offsetHeight) / 2 + 'px';

target.style.left = (orginW - target.offsetWidth) / 2 + 'px';

} else if (target.style.MozTransform !== undefined) { // Mozilla

target.style.MozTransform = 'rotate(' + angle + 'deg)';

} else if (target.style.OTransform !== undefined) { // Opera

target.style.OTransform = 'rotate(' + angle + 'deg)';

} else if (target.style.webkitTransform !== undefined) { // Chrome Safari

target.style.webkitTransform = 'rotate(' + angle + 'deg)';

} else {

target.style.transform = "rotate(" + angle + "deg)";

}

}

timer = setInterval(function() {

i += 10;

run(i);

if (i > degree - 1) {

i = 0;

clearInterval(timer);

}

}, 10);

}

return {rotate: rotate}

}();

window.onload = function() {

Img.rotate('demo', 360);

document.getElementById('demo').onclick = function() {

Img.rotate('demo', 360);

}

}

</script>

</body>

</html>

【说明】

最终还是实现了全浏览器兼容.

IE使:matirx滤镜 webkit: webkitTransform Opera: OTransform Firefox:MozTransform

【源码下载】

http://files.cnblogs.com/bluedream2009/rotate.rar

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航