> 웹 프론트엔드 > JS 튜토리얼 > 순수 js코드로 제작한 웹시계 특수효과 [예제포함]_javascript 기술

순수 js코드로 제작한 웹시계 특수효과 [예제포함]_javascript 기술

WBOY
풀어 주다: 2016-05-16 15:07:22
원래의
1421명이 탐색했습니다.

순수한 JS 코드로 만든 웹시계 특수효과, 코딩이 필요한 분들은 한번 살펴보세요. 모두에게 참고 자료를 제공하십시오.

<HTML><HEAD> 
<META http-equiv=Content-Type content="text/html; charset=gb2312"> 
<META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD> 
<BODY> 
<DIV 
style="LEFT: 155px; WIDTH: 400px; ZOOM: 1; POSITION: absolute; TOP: 133px; HEIGHT: 300px"> 
<DIV id=bg 
style="LEFT: -22px; WIDTH: 150px; ZOOM: 1.5; POSITION: absolute; TOP: -57px; HEIGHT: 150px"><IMG 
style="Z-INDEX: 22; WIDTH: 129px; HEIGHT: 129px" src="http://files.jb51.net/upload/novelty.gif"> 
</DIV> 
<DIV id=h 
style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; WIDTH: 129px; PADDING-TOP: 5px; POSITION: absolute; HEIGHT: 129px"><IMG 
style="Z-INDEX: 22; WIDTH: 129px; HEIGHT: 129px" src="http://files.jb51.net/upload/novelty_h.gif"> 
</DIV> 
<DIV id=m 
style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; WIDTH: 129px; PADDING-TOP: 5px; POSITION: absolute; HEIGHT: 129px"><IMG 
style="Z-INDEX: 22; WIDTH: 129px; HEIGHT: 129px" src="http://files.jb51.net/upload/novelty_m.gif"> 
</DIV> 
<DIV id=s 
style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; WIDTH: 129px; PADDING-TOP: 5px; POSITION: absolute; HEIGHT: 129px"><IMG 
style="Z-INDEX: 22; WIDTH: 129px; HEIGHT: 129px" src="http://files.jb51.net/upload/novelty_s.gif"> 
</DIV> 
<DIV id=dot 
style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; WIDTH: 129px; PADDING-TOP: 5px; POSITION: absolute; HEIGHT: 129px"><IMG 
style="Z-INDEX: 22; WIDTH: 129px; HEIGHT: 129px" src="http://files.jb51.net/upload/novelty_dot.gif"> 
</DIV> 
<DIV> 
<SCRIPT> 
//oObj input requires that a matrix filter be applied. 
//deg input defines the requested angle of rotation. 
var deg2radians = Math.PI * 2 / 360; 
function MatrixFilter(obj) 
{  
 if(!obj.filters)return; 
 //alert(obj.filters.item(0)); 
 var Matrix; 
 for(p in obj.filters) 
 {  
  if(p=="DXImageTransform.Microsoft.Matrix")Matrix=obj.filters["DXImageTransform.Microsoft.Matrix"]; 
 } 
 if(!Matrix) 
 { 
  obj.style.filter+="progid:DXImageTransform.Microsoft.Matrix()"; 
 } 
 Matrix=obj.filters["DXImageTransform.Microsoft.Matrix"]; 
 this.equal=function(Matrix2D_x) 
 { 
  if(Matrix2D_x.M11)Matrix.M11 = Matrix2D_x.M11; 
  if(Matrix2D_x.M12)Matrix.M12 = Matrix2D_x.M12; 
  if(Matrix2D_x.M21)Matrix.M21 = Matrix2D_x.M21; 
  if(Matrix2D_x.M22)Matrix.M22 = Matrix2D_x.M22; 
 } 
  
 if(arguments[1])this.equal(arguments[1]); 
  
 this.Rotate=function(deg) 
 { 
  rad = deg * deg2radians; 
  costheta = Math.cos(rad); 
  sintheta = Math.sin(rad); 
  var d=new Matrix2D(costheta,-sintheta,sintheta,costheta); 
  this.equal(Matrix2D.Mul(Matrix,d)); 
 } 
 this.RotateTo=function(deg) 
 { 
  rad = deg * deg2radians; 
  costheta = Math.cos(rad); 
  sintheta = Math.sin(rad); 
  var d=new Matrix2D(costheta,-sintheta,sintheta,costheta); 
  this.equal(d); 
 } 
 this.RotateAt=function(deg,sx,sy) 
 { 
  rad = deg * deg2radians; 
  costheta = Math.cos(rad); 
  sintheta = Math.sin(rad); 
  var d=new Matrix2D(costheta,-sintheta,sintheta,costheta); 
  var x=sx-Matrix.Dx; 
  var y=sy-Matrix.Dy; 
  this.MoveTo(x*costheta+y*sintheta-x,-x*sintheta+y*costheta-y); 
  this.equal(Matrix2D.Mul(Matrix,d));  
 } 
 this.RotateToAt=function(deg,sx,sy) 
 { 
  rad = deg * deg2radians; 
  costheta = Math.cos(rad); 
  sintheta = Math.sin(rad); 
  var d=new Matrix2D(costheta,-sintheta,sintheta,costheta); 
  var x=sx; 
  var y=sy; 
  this.MoveTo(x-(x*costheta-y*sintheta),-(x*sintheta+y*costheta-x)); 
  this.equal(d); 
 } 

 this.MoveTo=function(sx,sy) 
 { 
  Matrix.Dx=sx; 
  Matrix.Dy=sy; 
 } 
 this.toMatrix2D=function() 
 { 
  return new Matrix2D(Matrix.M11,Matrix.M12,Matrix.M21,Matrix.M22); 
 } 
 this.ZoomBy=function(sx,sy) 
 { 
  var d=new Matrix2D(sx,0,0,sy); 
  this.equal(Matrix2D.Mul(Matrix,d)); 
 } 
 this.toString=function() 
 { 
  return ""+Matrix.M11+" "+Matrix.M12+"\n"+Matrix.M21+" "+Matrix.M22+"\n" 
 } 
 //Matrix.SizingMethod='clip to original'; 
 //this.fnSetRotation(30); 
 //alert(Matrix.M11); 
 //alert(obj.filters["DXImageTransform.Microsoft.Matrix"]); 
} 
function Matrix2D() 
{ 
 this.M11 = arguments[0]||1; 
 this.M12 = arguments[1]||0; 
 this.M21 = arguments[2]||0; 
 this.M22 = arguments[3]||1; 
 this.Mul_Matrix2D=function(Matrix2D_b) 
 { 
  var r=new Matrix2D(); 
  r=Matrix2D.Mul(this,Matrix2D_b);   
  return r;  
 } 
 this.toString=function() 
 { 
  return ""+this.M11+" "+this.M12+"\n"+this.M21+" "+this.M22+"\n" 
 } 
} 
Matrix2D.Mul=function(Matrix2D_a,Matrix2D_b) 
{ 
 var r=new Matrix2D(); 
 r.M11=Matrix2D_a.M11*Matrix2D_b.M11+Matrix2D_a.M12*Matrix2D_b.M21; 
 r.M12=Matrix2D_a.M11*Matrix2D_b.M12+Matrix2D_a.M12*Matrix2D_b.M22; 
 r.M21=Matrix2D_a.M21*Matrix2D_b.M11+Matrix2D_a.M22*Matrix2D_b.M21; 
 r.M22=Matrix2D_a.M21*Matrix2D_b.M12+Matrix2D_a.M22*Matrix2D_b.M22; 
 return r;  
} 


var ms=new MatrixFilter(s); 
var mm=new MatrixFilter(m); 
var mh=new MatrixFilter(h); 
var i=1; 
setInterval("ms.RotateToAt((new Date()).getSeconds()*6+6,69,69)",500); 
setInterval("mm.RotateToAt((new Date()).getMinutes()*6+6,69,69)",500); 
setInterval("mh.RotateToAt(((new Date()).getHours()+(new Date()).getMinutes()/60)*30,69,69)",500); 
//mf.MoveTo(30,70); 
//mf.ZoomBy(1.5,1.5); 
//mf.ZoomBy(1.5,1.5); 
//alert(mf.toMatrix2D()); 

//alert(Matrix2D.Mul(m2d1,m2d2)); 
//fnSetRotation(oDiv.filters.item(0),30); 
</SCRIPT> 
</DIV></DIV></BODY></HTML> 

로그인 후 복사

순수한 JS 코드로 제작한 위의 웹페이지 시계 특수 효과(예제 포함)는 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. Script Home을 지원해 주시길 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿