css 如何访问@keyframes选择器并从中获取值

eqoofvh9  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(115)

css中有代码

#shape {
   -webkit-animation: spin 50s infinite linear;
 }

 @-webkit-keyframes spin {
  0% { transform: rotateY(0); }
   100%   { transform: rotateY(-360deg); }
 }

我需要抓住转弯的瞬间。例如:如果Y轴旋转为-30度,则执行以下操作
我尝试了很多方法,但是没有结果。使用了js和jquery

0ve6wy6x

0ve6wy6x1#

关键帧仅生成以下事件,为JS提供任何信息:

  • 动画开始
  • 动画结束
  • 动画
  • 动画取消
@keyframes sk-logo-main{
      0% { transform: rotate(-360deg); }
    100% { transform: rotate(0deg); }
  }

  #my-div-animated{
    background:#666699;
    color:#fff;
    border-radius:50%;
    width:100px;
    height:100px;
    line-height:100px;
    text-align:center;
    font-size:25px;
    position:absolute;
    
    animation-name: sk-logo-main;
    animation-duration: 1s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;  
  }
<div class='container'>

<div id="my-div-animated">
  text
</div>

</div>

  <script>
  
function AnimationListener( e ){
  console.log ( e ) ;
}

window.addEventListener ( 'load', ()=>{
  let animDiv = document.getElementById ( 'my-div-animated' );
  animDiv.addEventListener( "animationstart", AnimationListener);
  animDiv.addEventListener( "animationiteration", AnimationListener);
} );  
  
  </script>

您不能检查此“状态”/“事件”之间的动画进度状态。
如果你想完全控制动画元素,你可以在JS中做这个动画。

相关问题