CSSアニメーションでツールチップをフェードイン表示させる方法
CSSだけでも、JavaScriptに頼らずにツールチップのテキストを滑らかにフェードイン表示させることができます。鍵となるのは、opacity(透明度)とtransition(遷移)プロパティを組み合わせることです。
実装のポイント
- opacity: 0; — 初期状態ではツールチップを完全に透明にしておきます
- transition: opacity 1s; — 透明度が1秒かけて徐々に変化するよう設定し、なめらかなフェード効果を作ります
- :hover 時に opacity: 1; — マウスカーソルが要素に乗った瞬間に不透明へ変化し、フェードインが実現します
- visibility の切り替え — 非表示状態との組み合わせで、意図しないクリックやフォーカスを防ぎつつ自然な演出が可能です
コード例
以下のコードを実行し、テキスト「Keep mouse cursor over me」の上にマウスカーソルを重ねると、ツールチップが左側へ矢印付きでフェードイン表示されます。
<!DOCTYPE html>
<html>
<style>
.mytooltip .mytext {
visibility: hidden;
width: 140px;
background-color: blue;
color: #fff;
z-index: 1;
top: -5px;
right: 110%;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
opacity: 0;
transition: opacity 1s;
}
.mytooltip {
position: relative;
display: inline-block;
margin-left: 150px;
}
.mytooltip .mytext:after {
content: "";
position: absolute;
top: 50%;
left: 100%;
margin-top: -5px;
border-width: 6px;
border-style: solid;
border-color: transparent transparent transparent blue;
}
.mytooltip:hover .mytext {
visibility: visible;
opacity: 1;
}
</style>
<body>
<div class = "mytooltip">Keep mouse cursor over me
<span class = "mytext"> My Tooltip text</span>
</div>
</body>
</html>
-
CSSでツールチップの右側に矢印を表示する方法
CSSのleftプロパティを活用することで、ツールチップの右側に矢印を表示させることができます。実装のポイント矢印は::after疑似要素とborder(境界線)を組み合わせた定番テクニックで作成します。ツールチップ本体の左端(left: 100%)に疑似要素を配置し、4辺のうち左側のボーダーだけに色を指定することで、三角形の矢印として描画されます。残りの3辺はtransparent(透明)にしておくのがポイントです。サンプルコード以下のコードを実行すると、テキストにマウスカーソルを重ねたときに、右側へ矢印が付いたツールチップが表示されます。<!DOCTYPE html> <
-
CSSでツールチップの上部に矢印を追加する方法
ツールチップの上部に矢印を追加するには、CSSのbottomプロパティを活用します。:after疑似要素と組み合わせることで、画像を使わずに三角形の矢印を簡単に作成できます。 実装例 以下のコードを実行すると、上部に矢印が付いたツールチップを表示できます。テキストの上にマウスカーソルを重ねると、ツールチップが現れる仕組みです。 <!DOCTYPE html> <html> <style> .mytooltip .mytext { &nb