切换图片后要把样式调回来
var oImg = document.all('ImgBig');
            oImg.style.filter = 'Progid:DXImageTransform.Microsoft.BasicImage(Rotation=' + 0+ ')';

解决方案 »

  1.   


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

  2.   


    清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊
      

  3.   

    写个初始化的函数调用我现在改用了一个小插件: 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);
            } 
      

  4.   


    清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊     //切换图片:
            function changeImg(picURL) {
                    $("#ImgBig").attr("src", picURL);
                return false;
            }
      

  5.   

    写个初始化的函数调用我现在改用了一个小插件: 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);
            } 
    最简单的删掉图片再插入新的