在IE中动画转换CSS不能按预期工作

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

我有一个CSS动画,我在我的网站上使用来动画箭头来回动画。它在每个浏览器上工作正常,除了IE,其中有一个奇怪的故障,箭头的Y位置正在改变,即使它不应该。

$(function() {
  $('button').click(function(e) {
    e.preventDefault();
    $('img.next').addClass('animated');
  });
});
.arrow-cont {
  height:100%;
  width:130px;
  position:absolute;
  right:0;
  top:0;
  cursor:pointer;
  overflow:hidden;
}
img.next {
  width:30px;
  position:absolute;
  top:50%;
  right:20px;
  animation-duration:1.5s;
  animation-timing-function:ease-in-out;
  transition:0.5s all ease-in-out;
}
  img.next.animated {
    animation-name:next;
    animation-iteration-count:infinite;
  }

@keyframes next {
    from { transform:translate(0px, -50%); }
    65%  { transform:translate(10px, -50%); }
    to   { transform:translate(0px, -50%); }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="arrow-cont">
<img class="next" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Arrow_Blue_Right_001.svg/768px-Arrow_Blue_Right_001.svg.png" />
</div>


<button>Animate</button>
css css3 internet-explorer css-transitions transform
2个回答
0
投票

尝试分别设置translateXtranslateY属性。

另外,我不确定你为什么设置transition:0.5s all ease-in-out,因为没有任何东西正在过渡。所以我删除了这个。

$(function() {
  $('button').click(function(e) {
    e.preventDefault();
    $('img.next').addClass('animated');
  });
});
.arrow-cont {
  height: 100%;
  width: 130px;
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  overflow: hidden;
}

img.next {
  width: 30px;
  position: absolute;
  top: 50%;
  right: 20px;
  animation-duration: 1.5s;
  animation-timing-function: ease-in-out;
  transform: translateY(-50%) translateX(0px);
}

img.next.animated {
  animation-name: next;
  animation-iteration-count: infinite;
}

@keyframes next {
  from {
    transform: translateY(-50%) translateX(0px);
  }
  65% {
    transform: translateY(-50%) translateX(10px);
  }
  to {
    transform: translateY(-50%) translateX(0px);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="arrow-cont">
  <img class="next" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/Arrow_Blue_Right_001.svg/768px-Arrow_Blue_Right_001.svg.png" />
</div>


<button>Animate</button>

-1
投票

尝试升级IE 11浏览器版本。因为,我没有找到IE 11.0.9600.19129版本的软件包,我只是在IE 11.0.9600.19155和IE 11.1.17134.0版本上测试你的代码,它们都运行良好。因此,您可以尝试使用这些版本,或升级到最新版本。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.