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.10.15

HTML・CSS

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点

デモページはこちら マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点です。以下のhtml構造でテストします。 .photo01 a…

2024.02.19

HTML・CSS

Photoshopのグラデーションオーバーレイをlinear-gradientで適用

Photoshopのグラデーションオーバーレイを、background-imageプロパティのlinear-gradientで適用します。グラデーションの角度は…

2022.08.30

HTML・CSS

linear-gradientを利用した文字の下線

background-imageプロパティのlinear-gradientを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用…

2020.09.18

HTML・CSS

YouTubeの動画からサムネイル画像を取得

YouTubeの動画からサムネイル画像を取得します。取得には半角英数11桁の動画IDが必要です。サムネイル画像は下記の通りサイズ別に分かれていますが、最大サイズ…

2020.08.30

HTML・CSS

Font Awesomeの使い方

Font Awesomeの公式サイトで使用したいアイコンフォントを選びます。Iconsのページでアイコンフォントの一覧が確認できます。有料版と無料版があり有料版…

上に戻る