javascript - 为什么我的关键帧动画不能在我的 div 上运行?

标签 javascript jquery html css dom

我目前正在构建一个西洋跳棋游戏,我正在尝试让一个有效的动画代码在西洋棋棋子上工作,以便它缓慢地移动到下一个位置。

这是我的CSS:

@keyframes animateCheckerPiece {

            0% {top: 80px}
            50% {top: 270px}
            100% {top: 80px}
        }
.redChecker {

    height: 50px;
    width: 50px;
    background-color: red;
    border: solid red 2px;
    border-radius: 40px;
    position: relative;
}

这是我的源代码:

<tr id="row_C">
                    <td id="C1" class="odd"></td>
                    <td id="C2" class="even"><div align="center"><div id="r9" class="redChecker" onClick="chooseMove(event);"></div></div></td>
                    <td id="C3" class="odd"></td>
                    <td id="C4" class="even"><div align="center"><div id="r10" class="redChecker" onClick="chooseMove(event);"></div></div></td>
                    <td id="C5" class="odd"></td>
                    <td id="C6" class="even"><div align="center"><div id="r11" class="redChecker" onClick="chooseMove(event);"></div></div></td>
                    <td id="C7" class="odd"></td>
                    <td id="C8" class="even"><div align="center"><div id="r12" class="redChecker" onClick="chooseMove(event);"></div></div></td>
                </tr>

这是我的 JavaScript:

var piece, getId;

function chooseMove(event) {

    "use strict";

    getId = event.target.id;

    document.getElementById(getId).style.borderColor = "yellow";

    $("td").addClass("hover");
    $("#msg").html("Choose a spot to move to");

}

function movePiece(event) {

    "use strict";

    var piece = getId;
    var getLocId = event.target.id;

    $(piece).animate({ 
        top: "-=30px",
      }, 2000);

}

最佳答案

其实原因是你没有在你的样式中调用动画,

这里是你修改后的样式

.redChecker {
  height: 50px;
  width: 50px;
  background-color: red;
  border: solid red 2px;
  border-radius: 40px;
  position: relative;
  animation: animateCheckerPiece 3.5s ease-in-out;
}

你可以在一行中添加另一个选项

animation: name duration timing-function delay iteration-count direction fill-mode;

另外,检查 MDN 及其工作原理 https://developer.mozilla.org/en-US/docs/Web/CSS/animation

关于javascript - 为什么我的关键帧动画不能在我的 div 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53508441/

相关文章:

javascript - 为什么这个论点不起作用呢?

javascript - 在新选项卡中注入(inject) Javascript 并验证表单

javascript - 如何在固定宽度和高度的div内对齐四个圆圈

Jquery .css() 语法

javascript - 带有 PHP 的 HTML 表单 - 提交并停留在同一页面上

php - SQL 查询创建按钮,可以单击这些按钮以 'hopefully' 更改 DIV

javascript - 当 Canvas 内容增大时添加动态垂直和水平滚动条

javascript - 如何通过选中另一个单选按钮来设置选中的单选按钮

javascript - html 中的动态列表( Bootstrap 列表)

来自 Underscore 文档的 JavaScript 相等性