js原生rotate函数

来源:互联网 发布:nba直播数据统计 编辑:程序博客网 时间:2024/05/16 05:20





Document

div{
width: 300px;
height: 20px;
background: red;
margin: 100px 200px;
}




var div = document.getElementsByTagName('div')[0]; rotate(div,'250px','10px'); function rotate(obj,orx,ory){ var enddeg=0; obj.onmousedown=function(ev){ var onoff=0; var startdeg=0; var ndeg=0; if(obj.setCapture) obj.setCapture(); obj.style.transformOrigin=''+orx+' '+ory+'' var disx=obj.offsetLeft; var disy=obj.offsetTop; if(orx=='center'){ disx+=obj.offsetWidth/2; } if(orx=='right'){ disx+=obj.offsetWidth; } var tx=parseInt(orx.substring(0,orx.length-2)); if(orx.substring(orx.length-2)=='px'){ disx+=tx; } if(ory=='top'){ disy-=obj.offsetHeight/2; } if(ory=='bottom'){ disy+=obj.offsetHeight/2; } var ty=parseInt(ory.substring(0,ory.length-2)) if(ory.substring(ory.length-2)=='px'){ disy+=ty; } if(ev.clientX-disx>0){ var x=ev.clientX-disx; var y=ev.clientY-disy; startdeg=Math.atan(y/x)*180/Math.PI }else if(ev.clientY-disy>0){ var x=ev.clientX-disx; var y=ev.clientY-disy; startdeg=Math.atan(-x/y)*180/Math.PI+90 }else{ var x=ev.clientX-disx; var y=ev.clientY-disy; startdeg=Math.atan(y/x)*180/Math.PI+180 } document.onmousemove=function(ev){ var x=ev.clientX-disx; var y=ev.clientY-disy; ndeg=Math.atan(y/x)*180/Math.PI; if(x
0 0