国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

使圖片旋轉的3種解決方案

2024-05-06 15:55:51
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使圖片旋轉的3種解決方案,并了幾個方法的對比,大家參考看一下吧

圖片旋轉效果的研究
最近在項目中需要做圖片的旋轉功能,我研究了一下。下面來總結下圖片旋轉在各個瀏覽器的支持情況

一、圖片旋轉的方案

1)css3實現(xiàn)圖片旋轉功能:支持的瀏覽器有chrome,firefox;opera是不支持的。

具體代碼為:-moz-transfrom:rotate(90deg);-webkit-ransfrom:rotate(90deg);
上述代碼的意思就是將圖片順時針旋轉90度,其實可以旋轉任意的度數。但是支持css3的瀏覽器只有chrome,firefox3.6 ,safari,ie瀏覽器是不支持的。那么IE
下該怎么處理呢?于是就有了下面的一種方案

2)在IE下通過濾鏡來實現(xiàn)旋轉

具體代碼為:filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
這里的rotation 參數可以為0,1,2,3 ,表示的意思就是這些數字乘以90后的旋轉角度。IE下如果要旋轉任意的角度要用到矩陣變換濾鏡,我們在日常的使用過程中,
大部分使用的是變換90的倍數,這里就不討論任意的角度了。但是還是有問題的,如果非ie瀏覽器,不支持CSS3,那么如果實現(xiàn)圖片的旋轉呢,其實canvas也是可以圖片旋轉的。

3)用canvas來實現(xiàn)圖片的旋轉

canvas在chrome,firefox,opera等瀏覽器中均支持,他是有一個基于 JavaScript 的繪圖 API,。首先我們來看看怎樣利用canvas+JavaScript實現(xiàn)圖片的旋轉

代碼如下:

復制代碼 代碼如下:


var test = function(){
        var canvas = document.getElementById("result");
        var oImg = document.getElementById("Img");       
        canvas.height = 300;
        canvas.width = 200;
        var context = canvas.getContext("2d");
        context.save();
        context.translate(200,0);
        context.rotate(Math.PI/3);
        context.drawImage(oImg, 0, 0, 300, 200);
        context.restore();
        oImg.style.display = "none";
};

上述代碼首先得到一個canvas對象,然后設置他的高度,開始繪圖了。這個改變canvas的中心點和旋轉角度,然后將圖片畫到canvas中去,將其存儲起來,然后
隱藏之前的圖片。這種方法實現(xiàn)還是比較平滑的。

二、各種方案的對比

css3的實現(xiàn)方案,不會改變原始圖片所占空間的大小的,但是ie下的濾鏡會改變圖片所占空間的大小。
其實ie下也是可以支持canvas的,只需要引用一個canvas的腳本。這個是有google提供的一個。但是這個腳本有點大,沒有壓縮前有20多k
我比較建議在ie下使用濾鏡來實現(xiàn),其他的瀏覽器使用canvas 標簽來實現(xiàn)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 义乌市| 贵德县| 湄潭县| 工布江达县| 怀远县| 长春市| 芮城县| 温宿县| 彰武县| 金阳县| 蓬溪县| 泗阳县| 岳阳市| 叙永县| 福泉市| 错那县| 海丰县| 安丘市| 芜湖县| 砚山县| 邛崃市| 全椒县| 山东| 枣阳市| 聊城市| 隆林| 太康县| 榆树市| 安阳县| 芦溪县| 政和县| 鱼台县| 开阳县| 彭阳县| 鸡西市| 靖宇县| 惠州市| 木兰县| 兰溪市| 曲周县| 漳州市|