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();
		}
	);
});

関連記事

2023.02.13

HTML・CSS

隣接セレクタ、間接セレクタ、直下セレクタについて

隣接セレクタ、間接セレクタ、直下セレクタの動作を確認します。デモページはこちら 隣接セレクタ 間接セレクタ 直下セレクタ A + B A ~ B A > …

2024.09.08

HTML・CSS

clip-pathプロパティを利用した高さ可変の三角形と矢印

clip-pathプロパティを利用して、高さを可変の三角形と矢印を作成します。デモページはこちら まず共通のCSSです。clip-pathはdivタグの疑似要素…

2020.10.30

HTML・CSS

Twitterボタンの設置とカスタマイズ

デモページはこちら Twitterボタンの設置とカスタマイズのまとめです。ボタンのソースコードは以下の公式サイトから生成できます。ただし、jsの読み込みが必要に…

2020.07.05

HTML・CSS

rubyタグでテキストにルビ(ふりがな)を振る

rubyタグとrtタグの二つを使ってテキストにルビ(ふりがな)を振ります。rtタグはふりがな、rubyタグはテキストとふりがな(rtタグを含む)の両方を囲います…

2021.03.03

HTML・CSS

tableの横スクロール時にタッチデバイスでアニメーション表示

ブラウザの幅がtableの幅よりも狭くなった時に、CSSのoverflow-xを利用して横スクロールでtableを表示します。ただしiOS13以降safariで…

上に戻る