javascript - 我想让关键帧的动画从单击按钮开始

标签 javascript html css

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 5 年前

任何人都可以提交一些技巧吗?因此,它不会加载页面,而是会在单击按钮后制作动画。 因此,不利的是每个 td 都有自己的类和自己的关键帧,在特定时间设置它的样式。

            @-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
            @-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
            @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

            .fade-in {
              opacity:0;  
              -webkit-animation:fadeIn ease-in 1;  
              -moz-animation:fadeIn ease-in 1;
              animation:fadeIn ease-in 1;

              -webkit-animation-fill-mode:forwards;  
              -moz-animation-fill-mode:forwards;
              animation-fill-mode:forwards;

              -webkit-animation-duration:1s;
              -moz-animation-duration:1s;
              animation-duration:1s;
            }

            .fade-in.one {
              -webkit-animation-delay: 0.7s;
              -moz-animation-delay: 0.7s;
              animation-delay: 1s; /* Start mezi jednotlivými elementy */
            }

            .fade-in.two {
              -webkit-animation-delay: 0.7s;
              -moz-animation-delay:0.7s;
              animation-delay: 2s; /* Start mezi jednotlivými elementy */
            }

            .fade-in.three {
              -webkit-animation-delay: 2.7s;
              -moz-animation-delay: 2.7s;
              animation-delay: 3s; /* Start mezi jednotlivými elementy */

            </style>

            <table width="100%" class="container">
              <td width="33%" class="fade-in one">
                <img width="100%" src="sekerko.png">
              </td>

              <td width="33%" class="fade-in two">
                <img width="100%" src="miko.png">
              </td>

              <td width="33%" class="fade-in three">
                <img width="100%" src="lakyrka.png">
              </td>
            </table>

最佳答案

您可以使用 CSS animation-play-state 属性。此属性指定动画是正在运行还是已暂停。

CSS 语法:

animation-play-state: paused | running | initial | inherit;

在 JavaScript 中,可以查询它以确定动画当前是否正在运行。此外,您可以使用 JavaScript 设置它的值来暂停或恢复播放动画。 恢复暂停的动画将从暂停时停止的地方开始播放动画,而不是从动画序列的开头重新开始。

More information from MDN

示例:

function run() {
    var list = document.getElementsByClassName( 'fade-in' );

    list[0].style.animationPlayState = 'running';
    list[1].style.animationPlayState = 'running';
    list[2].style.animationPlayState = 'running'
}
@-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

.fade-in {
    opacity: 0;
    -webkit-animation: fadeIn ease-in 1;
    -moz-animation: fadeIn ease-in 1;
    animation: fadeIn ease-in 1;
    -webkit-animation-fill-mode: forwards;
    -moz-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    -webkit-animation-duration: 1s;
    -moz-animation-duration: 1s;
    animation-duration: 1s;

    /* Pause animation */
    animation-play-state: paused
}

.fade-in.one {
    -webkit-animation-delay: 0.7s;
    -moz-animation-delay: 0.7s;
    animation-delay: 1s /* Start mezi jednotlivými elementy */
}

.fade-in.two {
    -webkit-animation-delay: 0.7s;
    -moz-animation-delay:0.7s;
    animation-delay: 2s /* Start mezi jednotlivými elementy */
}

.fade-in.three {
    -webkit-animation-delay: 2.7s;
    -moz-animation-delay: 2.7s;
    animation-delay: 3s /* Start mezi jednotlivými elementy */
}
<input type="button" value="Click Me" onclick="run()"></input>

<table width="100%" class="container">
    <td width="33%" class="fade-in one">
        <img width="100%" src="http://www.google.com/intl/en_ALL/images/logo.gif">
    </td>
    <td width="33%" class="fade-in two">
        <img width="100%" src="http://www.google.com/intl/en_ALL/images/logo.gif">
    </td>
    <td width="33%" class="fade-in three">
        <img width="100%" src="http://www.google.com/intl/en_ALL/images/logo.gif">
    </td>
</table>

关于javascript - 我想让关键帧的动画从单击按钮开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50342781/

上一篇:html - Angular Material 表背景颜色

下一篇:javascript - 选择文本时显示工具提示

相关文章:

javascript - 在div中垂直居中图像

javascript - 没有 Bootstrap 的 AngularJS 工具提示?

javascript - npm install 是否意味着该脚本仅适用于 Node.js

javascript - 任务队列在第 5 步失败 : Playlist could not be load due to crossdomain policy restrictions - Youtube

javascript - 随机淡入淡出

javascript - 从 angularjs 中删除 # 并使 url 变得漂亮

javascript - 使用类名按 ID 获取元素

html - CSS 表格和列表样式位置错误?解决方法?

javascript - 如何基于路由在组件内部渲染组件

javascript - 需要 URL 的正则表达式