網頁中圖片旋轉的幾種實現方式


網頁中圖片旋轉一般有下面三種常見的實現方式:

一、 ie 濾鏡

IE的圖形旋轉濾鏡,通過指定BasicImage濾鏡的rotation值旋轉元素,旋轉方向為順時針,旋轉的中心點為元素的左上角。rotation可以有4個旋轉值:0, 1, 2,和3分別表示將元素旋轉0度、90度、180度、270度。

瀏覽器支持: IE5.5+

CSS代碼: 

.rotate{ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); }  

JS代碼:

element.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";  

IE濾鏡旋轉演示:

二、 CSS3 transform

css3 的transform屬性允許我們旋轉、縮放和移動元素。 可以通過給它傳遞一個 rotate(度數) 值來旋轉一個元素,正值表示順時針方向旋轉,負值表示逆時針方向旋轉,旋轉的中心點為元素的中心

瀏覽器支持:Firefox 4+、Oprea 10+、Safari 3.1+、Chrome 8+、IE 9+

CSS代碼:

.rotate{
	-ms-transform:rotate(90deg); /* IE 9 */
	-moz-transform:rotate(90deg); /* Firefox */
	-webkit-transform:rotate(90deg); /* Safari and Chrome */
	-o-transform:rotate(90deg); /* Opera */
}  

JS代碼:

element.style.webkitTransform="rotate(-90deg)"
element.style.MozTransform="rotate(-90deg)"
element.style.msTransform="rotate(-90deg)"
element.style.OTransform="rotate(-90deg)"
element.style.transform="rotate(-90deg)";

css3 tranform rotate 旋轉演示:

三、 HTML5 canvas rotate

使用canvas 2d繪圖上下文對象的context.rotate(angle)方法,通過指定需要旋轉的弧度旋轉坐標軸來實現圖片的旋轉,正值表示順時針方向旋轉,負值表示逆時針方向旋轉,旋轉的中心點時畫布的左上角。角度轉換弧度的公式為:弧度 = 角度 * Math.PI / 180。

 

瀏覽器支持:Chrome 1.0+、Firefox 1.5+、Opera 9.0+、Safari 1.3+ 、IE 9+

JS代碼:

context = canvas.getContext("2d")
context.rotate(90 * Math.PI / 180);
context.drawImage(img, 0, -img.height);

 坐標旋轉示意圖:

HTML5 canvas rotate旋轉演示:

 

DEMO:

點擊這里查看微博中圖片放大、縮小、旋轉的演示

 參考:

<<HTML5與CSS3權威指南 >> 1、第97頁 5.4.1 節坐標變換; 2、第18章 CSS3中的變形處理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM