js 图片旋转后,更替另一张图片src ,新的图片为什么也被旋转了?代码如下
js 图片旋转后,更换另一张图片src ,新的图片为什么也被旋转了?代码如下
js 图片旋转后,更换另一张图片src ,新的图片为什么也被旋转了?代码如下
[JS
]
[HTML]
------解决思路----------------------
无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊
------解决思路----------------------
最简单的删掉图片再插入新的
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>
------解决思路----------------------
无法切换是什么意思?你的function imgRoll() 这个函数就只兼容ie,其他浏览器不支持filter啊
------解决思路----------------------
我还对图片做了其他操作,有没有方法 让新切换的图片 显示 到 “初始”状态?谢谢!
写个初始化的函数调用
我现在改用了一个小插件: 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);
}
最简单的删掉图片再插入新的