为什么这个动画不统一
Why is this animation not uniform?
我有一个扩大和缩小的圆圈,但在10px-20px左右出现了故障。仔细看,你会看到它"抽搐"。
这就好像这个圆圈有一些分配的空间,然后"突破"它
https://jsfiddle.net/nj2u9bhy/4/
$A.Class.create('test',{
Name: 'Animator',
E: {
timer: '#timer'
},
init: function(){
this.animate();
},
animate: function(){
var s = this.E.timer.style;
var step = 2;
var state = 'up';
$A.setInterval(function(){
$A.log(step);
s.height = s.width = step + 'px';
s.borderRadius = step/2 + 'px';
if(state === 'up') {
step += 2;
}
if(state === 'down') {
step -= 2;
}
if(step === 2) {
state = 'up';
}
if(step === 42){
state = 'down';
}
}, 200);
}
});
我试着在这里明确地给它空间:
https://jsfiddle.net/nj2u9bhy/5/
但效果相同。
这是因为它是一个与底部垂直对齐的内联块元素,所以让它与顶部垂直对齐可以解决问题,或者将其更改为块元素。
更新的fiddle
#timer{
position: relative;
top: 20px;
left: 20px;
display: inline-block;
width: 32px;
height: 32px;
vertical-align: top;
background-color: black;
border-radius: 16px;
}
使用CSS动画可以很容易地完成,这将提供更平滑的过渡(注意,IE 9和更早版本不支持CSS动画)
#timer{
position: relative;
display: inline-block;
width: 0;
height: 0;
vertical-align: top;
background-color: black;
border-radius: 50%;
animation: zoom 3s linear infinite;
}
@keyframes zoom {
0% {width: 0; height: 0;}
50% {width: 32px; height: 32px;}
100% {width: 0; height: 0;}
}
<div id="timer">
</div>
相关文章:
- Greenstock不透明度动画从0到1再返回
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- 在两个值之间插值或“补间”(但不进行动画处理)
- 为什么这个动画不统一
- TweenSite不设置动画
- 无论在Google Chrome中做什么,Jquery都不会动画化
- 在 HTML 页面中嵌入动画 SVG,暂停(不启动动画)
- 动画对象在分离和追加后不继续动画
- 幻灯片放映后弹性滑块回调,而不是动画
- jQuery 延迟不算作动画
- ng-animate 不允许动画完成
- 在jquery中显示加载器/微调器时,GIF图片不会动画化
- JQuery 悬停函数不透明度动画
- 当 ajax 请求速度时不显示动画.js
- 与其他变换函数异步制作不透明度动画
- 具有位置右侧的跨度的 CSS 动画:自动向右:0 不会动画化
- 如何使用spin.js而不是动画gif
- ng动画不触发动画
- AngularJS中的CSS不透明度动画
- 使用变量时背景不设置动画