2020.08.23

HTML・CSS

マウスオーバー時にCSSのみでフェードイン・フェードアウトを実装する場合の注意点

マウスオーバー時にCSSのみでフェードイン・フェードアウトを実装する場合、display: none;で非表示、マウスオーバー時にdisplay: block;で表示ではtransitionが動作しません。

a .caption_txt {
	display: none;
	transition: 0.5s;
}
a:hover .caption_txt {
	display: block;
}

そこでopacity: 0;で非表示、マウスオーバー時にopacity: 1;で表示にします。これならtransitionが動作するためフェードイン・フェードアウトの動作になります。

a .caption_txt {
	opacity: 0;
	transition: 0.5s;
}
a:hover .caption_txt {
	opacity: 1;
}

displayで表示・非表示を制御したい場合、CSSアニメーションでopacityを変化させればフェードインの動作が実現できます。ただしCSSアニメーションの特性上、マウスアウト時はフェードアウトになりません。

a .caption_txt {
	display: none;
}
a:hover .caption_txt {
	display: block;
	animation: show 0.2s linear 0s;
}
@keyframes show{
	from{
		opacity: 0;
	}
	to{
		opacity: 1;
	}
}

display: none;の要素を確実にフェードイン・フェードアウトする場合はjQueryを利用します。

$(function() {
	$('a').hover(
		function() {
			$(this).find('.caption_txt').fadeIn();
		},
		function() {
			$(this).find('.caption_txt').fadeOut();
		}
	);
});

関連記事

2020.06.27

HTML・CSS

iOSのブラウザでセレクトボックスの文字を省略せずに表示

iOSのブラウザではセレクトボックスに長いテキストの選択肢がある場合、途中で省略して表示されます。省略記号「…」が付いて選択肢が最後まで読めません。これを全て表…

2020.10.10

HTML・CSS

CSSのflexbox使用時の注意点

デモページはこちら CSSのflexbox使用時の注意点をまとめました。flexboxは使い方によってレイアウトに表示崩れが発生するパターンがあります。 fle…

2024.08.15

HTML・CSS

box-decoration-breakでテキストの背景色を設定

box-decoration-breakプロパティでテキストに背景色を設定します。複数行の文字に対応でき、改行も問題ありません。デモページはこちら 以下のhtm…

2020.12.28

HTML・CSS

CSSロードアニメーションの実装【円の一部分の色を回転】

デモページはこちら 円の一部分の色が回転する動作のCSSロードアニメーションを実装します。ローダーの見た目は全てCSSで実装するため、svgは使用しません。 h…

2022.07.15

HTML・CSS

擬似要素::before、::afterと:hoverの組み合わせ

CSSの擬似要素::before、::afterに:hoverでホバーエフェクトを適用する場合、以下のように:hoverを先、::before、::afterを…

上に戻る