我是html5,css和javascript的新手,而且大多数时候我一直在玩。 我想要做的是设置和触发div的转换。加载页面后,我设法通过设置转换来实现。但这并不是很有活力,似乎不是正确的方法。我感谢任何帮助
<!DOCTYPE html>
<html>
<head>
<style>
body{
text-align: center;
}
#dialPointer
{
position:relative;
margin-left: auto;
margin-right: auto;
width:23px;
height:281px;
background:url(pointer.png);
background-size:100% 100%;
background-repeat:no-repeat;
transform: rotate(-150deg);
transition-duration: 2s;
transition-delay: 2s;
-webkit-transform: rotate(-150deg);
-webkit-transition-duration:2s;
-webkit-transition-delay: 2s;
}
/* I want to call this once */
.didLoad
{
width:23px;
height:281px;
transform:rotate(110deg);
-moz-transform:rotate(110deg); /* Firefox 4 */
-webkit-transform:rotate(110deg); /* Safari and Chrome */
-o-transform:rotate(110deg); /* Opera */
}
</style>
</head>
<body>
<div id="dialPointer"></div>
<script language="javascript" type="text/javascript">
window.onload=function () {
//But instead of using rotate(110deg), I would like to call "didLoad"
document.getElementById("dialPointer").style.webkitTransform = "rotate(110deg)";
};
</script>
</body>
</html>
答案 0 :(得分:4)
只要您想使用以下JavaScript,就可以将您的类添加到元素中:
document.getElementById("dialPointer").className += " didLoad";
或者可以说更好,如果你想保证跨浏览器支持,使用这样的jQuery:
$(function() {
// Handler for .ready() called.
$('#dialPointer').addClass('didLoad');
});
修改:
请在此处查看fiddle我在Chrome和Windows上测试的内容。我必须以dialPointer
样式注释转换代码并将其移至didLoad
类。我还用填充替换了你的背景图像,让它在小提琴中起作用。
答案 1 :(得分:3)
触发转换的方法是使元素与CSS选择器匹配。最简单的方法是将转换分配给类,然后使用Javascript添加该类。所以在你的例子中:
document.getElementById('dialPointer').classList.add('didLoad');
并且您选择的元素将动画。 (我已经使用了标准来补充Javascript,但它不适用于旧浏览器,所以我会让你自己动手)。
要让它在页面加载时设置动画,请将其置于加载事件中:
window.addEventListener('load', function () {
document.getElementById('dialPointer').classList.add('didLoad');
});
答案 2 :(得分:0)
也许是这样的:
document.getElementById("dialPointer").className += "didLoad";