久久亚洲中文字幕精_精品国产一区二区三区不卡_99久久久无码国产精品免费手机_国产亚洲精品久久久久动漫

將想法與焦點和您一起共享

前端設(shè)計中的一些特效任意旋轉(zhuǎn)圖片的js實例發(fā)布者:本站     時間:2020-05-16 08:05:36

任意旋轉(zhuǎn)圖片的js實例

Html代碼

<html>

<head>

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

<title>任意旋轉(zhuǎn)圖片</title>

<script type="text/javascript" src="coos.ui.rotate.js"></script>

</head>

<body>

<div id="inner"><img id="theimage" border="0" src="logo.jpg"/></div>

<div style="position:absolute;top:235px;height:40px;">

<input type="button" value="<-Rotate逆時針" name="RotateL" id="RotateL" onclick="rotateRight('theimage',90);">

<input type="button" value="順時針Rotate->" name="RotateR" id="RotateR" onclick="rotateLeft('theimage',90);">

<input type="button" value="順時針270" name="RotateR" id="RotateR" onclick="rotateLeft('theimage',270);">

</div>

</body>

</html>

Js代碼

function rotate(id,angle,whence){

var p=document.getElementById(id);

//we store the angle inside the image tag for persistence

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;

}

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);

}



選擇我們,優(yōu)質(zhì)服務(wù),不容錯過
1. 優(yōu)秀的網(wǎng)絡(luò)資源,強大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設(shè)經(jīng)驗,優(yōu)秀的技術(shù)和設(shè)計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時聯(lián)系電話:021-58370032
昆明市| 和田市| 泗水县| 镇江市| 北宁市| 且末县| 靖西县| 新巴尔虎右旗| 禹州市| 黑河市| 霍山县| 和田市| 长乐市| 婺源县| 泽库县| 茂名市| 凉城县| 东乡县| 巨野县| 通州市| 定边县| 壤塘县| 荔波县| 大石桥市| 诸暨市| 阆中市| 呼伦贝尔市| 邮箱| 扶余县| 滨州市| 潞西市| 宝丰县| 承德县| 靖江市| 定西市| 东乌珠穆沁旗| 阳山县| 乌审旗| 泊头市| 红安县| 芒康县|