display: none
クラスに基づいたいくつかの要素の小さなメニューを備えたタイル張りの壁を作成しようとしています。私の CSS には、動作しない原因fadeIn
となっている CSS トランジションがありfadeOut
ます。時間を追加すると、要素が消えるまでにそれだけの時間がかかりますが、実際のフェードはありません。
CSS:
.block:not(.noTransition), .block a img, #main_side p, #main_content, #menu_container{
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
jQuery を使用した JavaScript:
$(document).ready(function(){
$('.button').not("#all").click(function(){
var theId = $(this).attr('id');
$('.block').not('.'+theId).addClass("noTransition");
$('.block').not('.'+theId).fadeOut('slow', function(){
$('.block').not('.'+theId).addClass("covered");
$('.block').not('.'+theId).removeClass("noTransition");
});
$('.'+theId).addClass("noTransition");
$('.'+theId).fadeIn('slow',function(){
$('.'+theId).removeClass("covered");
$('.'+theId).removeClass("noTransition");
});
getScreenSize();
});
$("#all").click(function(){
$('.block').removeClass("covered");
$('.block').show();
});
getScreenSize();
});
CSS からトランジションを削除すると、フェードは機能しますが、要素が表示/非表示になった後もトランジションを維持して要素を再配置したいと考えています。