是否可以使用JavaScript而不是HTML5旋转div元素?
如果可以,我需要设置/更改元素的哪些属性来使其旋转?例如,div什么的?
注:当我说旋转时,是指围绕轴旋转图像,而不是每隔x毫秒显示不同的图像旋转。
是否可以使用JavaScript而不是HTML5旋转div元素?
如果可以,我需要设置/更改元素的哪些属性来使其旋转?例如,div什么的?
注:当我说旋转时,是指围绕轴旋转图像,而不是每隔x毫秒显示不同的图像旋转。
虽然这是一个老问题,但这个答案可能会对某些人有所帮助...
在所有主要的浏览器中,您可以使用专有的CSS标记旋转元素(尽管HTML5这个术语在这里并不特别相关)。
以下是使用CSS将元素旋转45度的示例:
.example {
-webkit-transform: rotate(45deg); /* Chrome & Safari */
-moz-transform: rotate(45deg); /* Firefox */
-ms-transform: rotate(45deg); /* IE 9+ */
-o-transform: rotate(45deg); /* Opera */
transform: rotate(45deg); /* CSS3 */
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678, sizingMethod='auto expand'); /* IE 7-8 */
}
是的,MSIE的语法确实很糟糕。请注意 "sizingMethod='auto expand'" - 这很关键,以避免结果被裁剪。
我相当确定矩阵变换(至少在某种程度上)也受到MSIE 6的支持,但支持它们的情况比较苛刻(而且越来越难以关注8)。
M11=0.7071...
?如果我想使用90度,我该如何计算新的值? - The Muffin Man是的,可以使用CSS3而不是HTML5来旋转一个div。
您可以在CSS3 Please上尝试CSS旋转(切换.box_rotate规则)。
如需更多信息,请搜索:css rotate
如果您想要一种在所有浏览器(包括IE6)中都能工作的旋转文本方式,请尝试Raphaël。
很抱歉我来晚了。但为了后人,我想发布这个:这个网站相当不错,甚至可以执行矩阵变换以对应其css3的同类功能。
您可以在IE中使用矩阵来完成它。以下是一种以跨浏览器方式解决它的函数。
如果您想要即时完成,可以使用以下代码:
element.style.transform = "rotateZ(90deg)";
请务必在CSS语句周围使用引号。
如果您希望在一定时间内完成(比如一秒钟),您可以使用以下代码:
element.style.transition = "1s";
element.style.transform = "rotateZ(90deg)";
function OnKeyUp() {
let x = document.getElementById("cmd");
x.value = x.value.toUpperCase();
if (x.value.includes('ROTATE')) {
Rotate('');
}
if (x.value.includes('STOP')) {
//Rotate('stop');
location.reload()
}
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function Rotate(cmd) {
for (i = 0; i <= 1800; i++) {
var deg = 'rotate(' + i/5+ 'deg)'
document.querySelector('.box').style.transform = deg;
await sleep(1);
if (i == 1800) {
i = 0;
}
if (cmd == 'stop') {
i = 360;
}
}
}
<style>
.box {
rotate: 0deg;
}
</style>
<div class="box">
<label for="cmd">Command:</label>
<input type="text" id="cmd" name="cmd" onkeyup="OnKeyUp()">
</div>