对象位置的关键帧动画在safari中不起作用

问题描述 投票:0回答:1

盒子里面有一个盒子和一个图像。我正在使用CSS3 object-fit属性来填充图像框。我也需要一个动人的动画。我正在使用关键帧动画来移动图像。

这是我的HTML

<div class="item">
<img src="https://placeimg.com/640/480/any">
</div>
<br>
<button>
animation
</button>

我的CSS在这里,

    .item {
  width: 200px;
  height: 200px;
  border: 1px solid #000;
}

.item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 0px 0;

}

.item.active img {
  -webkit-animation: objectMove 2s;
  animation: objectMove 2s;
  /* object-position: 100px 0; */
}

 @-webkit-keyframes objectMove {
  from {
    object-position: 0 0;

  }

  to {
    object-position: 100px 0;

  }
} 

 @keyframes objectMove {
  from {
    object-position: 0 0;

  }

  to {
    object-position: 100px 0;

  }
} 

这是我的javascript,

$('button').click(function(){ $('.item').addClass('active');

setTimeout(function(){ $('.item').removeClass('active'); }, 2000); })

它在铬,莫扎拉和边缘都很好用。但不在野生动物园工作。

Here is the jsfiddle of the same.

任何人都可以帮我解决一下吗?

css3 safari cross-browser css-animations keyframe
1个回答
1
投票

https://www.sitepoint.com/using-css-object-fit-object-position-properties/#browser-support-and-polyfills

object-positionkeyframes在safari浏览器上不完全支持所以我没有使用object-position代替transform:translateX;

$('button').click(function() {
  $('.item').addClass('active');

  setTimeout(function() {
    $('.item').removeClass('active');
  }, 2000);
})
.item {
  width: 200px;
  height: 200px;
  border: 1px solid #000;
  overflow: hidden;
}

.item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform:translateX(0);
}

.item.active img {
  -webkit-animation: objectMove 2s;
  animation: objectMove 2s;
}

@-webkit-keyframes objectMove {
  from {
    -webkit-transform:translateX(0);
  }
  to {
    -webkit-transform:translateX(100px);
  }
}

@keyframes objectMove {
  from {
    transform:translateX(0);
  }
  to {
    transform:translateX(100px);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="item">
  <img src="https://placeimg.com/640/480/any">
</div>
<br>
<button>
animation
</button>
© www.soinside.com 2019 - 2024. All rights reserved.