gpt4 book ai didi

Javascript 旋转 IE8

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:53:19 24 4
gpt4 key购买 nike

所以我在 google 和 stackoverflow 上搜索了解决方案,但找不到答案。我的问题是我无法使用 Internet Explorer 8 旋转元素。我用了 this sitethis stackoverflow topic作为资源,最终得出如下结果:

function rotateElement(e, deg) {
var deg_str = deg + "";
var rotate_transform = "rotate(" + deg + "deg)";

var degreeToIEMatrix = function(deg){
var deg2radians = Math.PI / 180;
var rad = deg * deg2radians ;
var costheta = Math.cos(rad);
var sintheta = Math.sin(rad);

var M11 = costheta;
var M12 = -sintheta;
var M21 = sintheta;
var M22 = costheta;

return 'M11=' + M11 + ', M12=' + M12 + ', M21=' + M21 + ', M22=' + M22;
};

/* @cc_on
matrix_str = degreeToIEMatrix(deg);
document.write(matrix_str);
filter_str = "progid:DXImageTransform.Microsoft.Matrix(" + matrix_str + ", sizingMethod='auto expand')";
@*/

e.style["rotation"] = deg_str + "deg"; // CSS3
e.style.MozTransform = rotate_transform; // Moz
e.style.OTransform = rotate_transform; // Opera
e.style.WebkitTransform = rotate_transform; // Webkit/Safari/Chrome
e.style["zoom"] = "1"; // ??? Probably IEs

/* @cc_on
e.style.filter = filter_str; // IE 6/7
e.style.MsFilter = filter_str; // IE 8
@*/
}

在 Internet Explorer 8 中,元素不会旋转。我的代码中是否存在错误或者它是否很糟糕?我知道我可以为此使用 JQuery,但我不想依赖库。我查找了 JQuery 的源代码,但在那里找不到答案。

最佳答案

function rotate(angle, elem){
if (angle >= 0) {
var rotation = Math.PI * angle / 180;
} else {
var rotation = Math.PI * (360+angle) / 180;
}
var c = Math.cos(rotation),
s = Math.sin(rotation);
elem.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+c+",M12="+(-s)+",M21="+s+",M22="+c+",SizingMethod='auto expand')";
}

仅适用于 IE! ;)

关于Javascript 旋转 IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com