javascript - 如何从 JavaScript 设置和触发 css 转换

标签 javascript css css-transitions

我是 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>

最佳答案

触发过渡的方式是让元素匹配 CSS 选择器。最简单的方法是将过渡分配给一个类,然后使用 Javascript 添加该类。所以在你的例子中:

document.getElementById('dialPointer').classList.add('didLoad');

并且您选择的元素将具有动画效果。 (我为此使用了标准 Javascript,但它不适用于旧版浏览器,所以我会把它留给你来让它工作)。

要让它在页面加载时显示动画,请将其放入加载事件中:

window.addEventListener('load', function () {
    document.getElementById('dialPointer').classList.add('didLoad');
});

关于javascript - 如何从 JavaScript 设置和触发 css 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450552/

相关文章:

改变 UI 控制的 CSS 媒体查询

javascript - 尝试为列表/表格创建重命名功能

javascript - 如何通过 JavaScript 插入 HTML 元素?

javascript - 是否有 onclick 结束事件?

javascript - 如何使用 CSS/Javascript 取消选择突出显示的列表项?

CSS 悬停过渡不起作用

css - Transform-duration 在 Safari 中不起作用,但在 Chrome 中起作用

sproutcore - SC.SceneView 垂直动画?

javascript - 更改组文本字段的背景颜色

javascript - 如何在单击时切换一个 div 中的内容并更改另一个 div 中的内容