我在通过jQuery发起转换时遇到了一些问题。
第一次转换完成后,我希望其他div淡入,但不透明度不会执行de过渡。它直接到opacity: 1;
。
我能解决与setTimeout
,但我在想,如果有一个在我的代码有问题或东西转换结束后CSS转换没有触发
var endTransition = "transitionend";
$('#test').click(function() {
$(this).css('opacity', '0').one(endTransition, function() {
$('#test').css('display', 'none');
$('#test2').css('display', 'inline-block').css('opacity', '1');
});
});
$('#test2').click(function() {
$(this).css('opacity', '0').one(endTransition, function() {
$('#test2').css('display', 'none');
$('#test').css('display', 'inline-block').css('opacity', '1');
});
});
#test {
display: inline-block;
background: red;
opacity: 1;
width: 200px;
height: 200px;
transition: opacity .5s ease;
}
#test2 {
background: blue;
display: none;
opacity: 0;
width: 200px;
height: 200px;
transition: opacity .5s ease;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='test'></div>
<div id='test2'></div>
看来你的问题是你有'的.css( '显示', 'inline-block的')'你打电话之前'的CSS( '不透明度', '1')'。这就是你的元素因为css'display:inline-block'而立即显示的原因。 –