js 图片旋转后,更替另一张图片src ,新的图片为什么也被旋转了?代码如下

js 图片旋转后,更换另一张图片src ,新的图片为什么也被旋转了?代码如下
js  图片旋转后,更换另一张图片src ,新的图片为什么也被旋转了?代码如下
[JS

]
        // 旋转图片  
        var oArcSize = 1;
        function imgRoll() {
            var oImg = document.all('ImgBig');
            oImg.style.filter = 'Progid:DXImageTransform.Microsoft.BasicImage(Rotation=' + oArcSize + ')';
            oArcSize += 1;
            oArcSize = oArcSize == 4 ? 0 : oArcSize;
        }  


     //切换图片:
        function changeImg(picURL) {
                $("#ImgBig").attr("src", picURL);
            return false;
        }


[HTML]

        <div style="height:400px; width:560px; overflow:scroll; overflow-y:auto; overflow-x:auto">
        <div>
        <a href="javascript:" onclick="imgRoll(); return false;">右旋转</a>
        </div>
        <img id="ImgBig" alt="" src="a.gif" />
        </div>

------解决思路----------------------
引用:
Quote: 引用:

$("#ImgBig")[0].style.cssText='';


清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?


无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

我还对图片做了其他操作,有没有方法 让新切换的图片 显示 到 “初始”状态?谢谢!

写个初始化的函数调用


我现在改用了一个小插件: jQuery rotate.js 来旋转图片,切换图片后,如何初始化,谢谢!



       jQuery.fn.rotate = function (angle, whence) {
            var p = this.get(0);
            // 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.round(Math.cos(rotation) * 1000) / 1000;
            var sintheta = Math.round(Math.sin(rotation) * 1000) / 1000;
            //alert(costheta+","+sintheta); 
            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);
        }
        jQuery.fn.rotateRight = function (angle) {
            this.rotate(angle == undefined ? 90 : angle);
        }
        jQuery.fn.rotateLeft = function (angle) {
            this.rotate(angle == undefined ? -90 : -angle);
        }
 

最简单的删掉图片再插入新的