如何用jQuery控制css3动画属性'animation-duration'?

how to control css3 animation property 'animation-duration' with jQuery?

我正在尝试用 jQuery 控制 CSS3 动画 属性 animation-duration。但它不会发生在我的脚本中。如果有解决办法请告诉我。

片段:

jQuery(document).ready(function() {
  var incleft = jQuery('.basic-details').attr('data-duration');
  var i = incleft;
  jQuery('#button').click(function() {
    alert(123);
    for (i = 0; i < 10; i++) {
      jQuery('.basic-details').css('animation-duration', i);
    }
  });
});
.basic-details {
  width: 60px;
  height: 60px;
  background-color: #f00;
  position: absolute;
  top: 0px;
  left: 0px;
  transform: rotate(0deg);
  animation-name: movement;
  animation-duration: 0s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-delay: 0s;
  animation-play-state: running;
  animation-fill-mode: forwards;
}
@keyframes movement {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="basic-details" data-duration="0"></div>
<button id="button" style="width: 100px; height: 40px; position:fixed; bottom: 0px;"></button>

您可以试试下面的方法。有一个 's' 需要附加,您需要通过使用 eq() 方法来定位每个 .basic-details 元素。

$(document).ready(function() {
  $('.basic-details').each(function(index) {
    $(this).css('left', index * parseInt($(this).css('width')));
  });
  $('#button').click(function() {
    var numDetails = $('.basic-details').length;
    for (var i = 0; i < numDetails; i++) {
      $('.basic-details').eq(i).css('animation-duration', $('.basic-details').eq(i).data('duration') + 's');
    }
  });
});
.basic-details {
  width: 60px;
  height: 60px;
  background-color: #f00;
  position: absolute;
  top: 0px;
  left: 0px;
  transform: rotate(0deg);
  animation-name: movement;
  animation-duration: 0s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-delay: 0s;
  animation-play-state: running;
  animation-fill-mode: forwards;
}
@keyframes movement {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="basic-details" data-duration="1"></div>
<div class="basic-details" data-duration="2"></div>
<div class="basic-details" data-duration="4"></div>
<div class="basic-details" data-duration="8"></div>
<button id="button" style="width: 100px; height: 40px; position:fixed; bottom: 0px;"></button>

希望对您有所帮助。