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 - 使用 Javascript 将文本 CSS 解析为 JSON

javascript - 如何使div可以点击?

javascript - 如何使用 Flexigrid 将页面重置为 1

javascript - 组合 JSON 数据集

javascript - 如何在Eclipse上正确运行NodeJS的VJET开发工具?

javascript - 使用表格宽度 : 100% set in css 使表格内容适合宽度

javascript - 异步 AJAX 调用后谷歌地图呈现问题

jquery - 单选按钮上的 Tab 键顺序不正确

php - Jquery - 未捕获的类型错误 : Cannot use 'in' operator to search for '324' in

javascript - 如何将模态框向下移动