Javascript 简单的css转换不需要';行不通
我在Firefox和Chrome中重复动画时遇到一些问题。 我使用简单的js使其可重复Javascript 简单的css转换不需要';行不通,javascript,css,transition,Javascript,Css,Transition,我在Firefox和Chrome中重复动画时遇到一些问题。 我使用简单的js使其可重复 (function step() { setTimeout(function() { var coin7 = document.getElementById('coin7'); coin7.style.display = 'block'; coin7.style.height = "210px"; }, 2000) setTimeout
(function step() {
setTimeout(function() {
var coin7 = document.getElementById('coin7');
coin7.style.display = 'block';
coin7.style.height = "210px";
}, 2000)
setTimeout(function(){
coin7.style.display = "none";
coin7.style.height = "0";
},6000);
setTimeout(step, 7000)
})();
Demolink
第一次迭代在所有浏览器中都可以,但第二次和下一次并没有在FF39和最新的Chrome中应用css转换。在IE11的所有迭代中,它仍然可以正常工作
如何修复此问题?尝试在超时为0的情况下应用高度,以确保在将“显示”设置为“块”后发生此问题(这会阻止动画)
尝试在超时为0的情况下应用高度,以确保在将“显示”设置为“块”(这会阻止动画)后发生此情况 试试这个 只需删除
coin7.style.display='none'代码>这就是解决方案
HTML
Javascript
(function step() {
setTimeout(function() {
var coin7 = document.getElementById('coin7');
coin7.style.display = 'block';
coin7.style.height = "210px";
}, 2000)
setTimeout(function(){
coin7.style.height = "0px";
},6000);
setTimeout(step, 7000)
})();
看看这个试试这个
只需删除coin7.style.display='none'代码>这就是解决方案
HTML
Javascript
(function step() {
setTimeout(function() {
var coin7 = document.getElementById('coin7');
coin7.style.display = 'block';
coin7.style.height = "210px";
}, 2000)
setTimeout(function(){
coin7.style.height = "0px";
},6000);
setTimeout(step, 7000)
})();
查看此此解决方案非常有效,但在setTimeout的第二个参数处需要10毫秒或更长时间。非常感谢。这个解决方案工作得非常出色,但在setTimeout的第二个参数处需要10毫秒或更长时间。非常感谢。是的,它工作了,我需要保存显示的逻辑,这就是为什么我不能使用你的解决方案。谢谢你的帮助。是的,它工作了,我需要保存显示的逻辑,这就是为什么我不能使用你的解决方案。谢谢你的帮助。
#coin7 {
overflow: hidden; display: block; height: 0px;
-moz-transition: all 3s ease-in-out;
-webkit-transition: all 3s ease-in-out;
-o-transition: all 3s ease-in-out;
-ms-transition: all 3s ease-in-out;
transition: all 3s ease-in-out;
}
(function step() {
setTimeout(function() {
var coin7 = document.getElementById('coin7');
coin7.style.display = 'block';
coin7.style.height = "210px";
}, 2000)
setTimeout(function(){
coin7.style.height = "0px";
},6000);
setTimeout(step, 7000)
})();