javascript - 将CSS更改为具有动画的元素?

标签 javascript jquery html css

我为图像设置了一个 css 动画,如下所示:

<style>
 #egg{

  height:50px;
  z-index: 2;

    margin-left:950px;
    margin-top: 450px;
    position:absolute;
    animation-duration: 6.4s;
    animation-name: slide;
     animation-iteration-count: infinite;
}
@keyframes slide{
    0% {
    margin-left: 910px;
  }

  49.99% {
        -moz-transform: scaleX(1);
        -o-transform: scaleX(1);
        -webkit-transform: scaleX(1);
        transform: scaleX(1);
        filter: FlipH;
        -ms-filter: "FlipH";
  }
  50%{
    margin-left: 1250px;

        -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH";
  }
  100%{
    margin-left:910px;
    -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH";
  }
}
</style>

通常我使用下面的代码来更改元素的 css:

$(element).css('margin-left','+=1000px');

但这对带有动画的元素不再有效。所以我想知道如何将 css 边距更改为附加了动画的元素?

我这样做的原因是当单击按钮时,元素应该显示在屏幕中间以开始动画。但是使用 margin:x% 会损坏动画,所以我需要检测窗口的高度和宽度,从而动态调整边距。

最佳答案

你可以解析当前的整数值,然后添加你想要的:

$(document).ready(function() {
  var element = $("#change-margin");
  setTimeout(function() {
    var current = parseInt(element.css('margin-left'));
    element.css('margin-left', 100 + current);
  }, 1000);
});
#change-margin {
  margin-left: 20px;
  width: 50px;
  height: 50px;
  background-color: #fea;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="change-margin"></div>

关于javascript - 将CSS更改为具有动画的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815630/

相关文章:

javascript - 使用 vanillaJS 无限绘制/取消绘制 SVG 路径循环

javascript - 如何使用以下组的反向引用?

javascript - Uncaught ReferenceError : $ is not defined

c# - 如何将 JSON 数据绑定(bind)到 JQuery 中的复选框

html - 在一个 div 中制作背景图像 B/W

Javascript - 如何访问导出对象的字段

javascript - 如何使用 Ajax 调用从 MySql 中拆分最大的数组?

javascript - 将 JS 每个循环中的 json 数据传递到 JS 函数时出现意外的输入错误结束

php - 物化 sidenav 崩溃不适用于 $_SESSION

c# - 如何从另一台服务器上的用户界面(网页)调用一台服务器上的 API?