切换图片后要把样式调回来
var oImg = document.all('ImgBig');
oImg.style.filter = 'Progid:DXImageTransform.Microsoft.BasicImage(Rotation=' + 0+ ')';
var oImg = document.all('ImgBig');
oImg.style.filter = 'Progid:DXImageTransform.Microsoft.BasicImage(Rotation=' + 0+ ')';
清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?
清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊
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);
}
清除 css 后 ,无法切换图片了,IE下 可以,其他浏览器都不行?无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊 //切换图片:
function changeImg(picURL) {
$("#ImgBig").attr("src", picURL);
return false;
}
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);
}
最简单的删掉图片再插入新的