CSS を使用して SVG パスの fill プロパティをホバー時に遷移させる
2023-10-16 08:22:36
質問
SVG画像ファイルをページ上の
object
タグの中に入れています。
<object type="image/svg+xml" data="linkto/image.svg">
<!-- fallback image in CSS -->
</object>
問題の画像は世界地図です。
fill
プロパティにマウスを乗せると
group
この場合、私は SVG を大陸ごとにグループ化しているので、南米はこのように見えます。
<g id="south_america">
<path fill="#FAFAFA" d="(edited for brevity)"/>
</g>
を取得することができます。
fill
プロパティがホバー時に変化するようにするには、SVG ドキュメントの先頭で以下の CSS を使用します。
<style>
#south_america path {
transition: fill .4s ease;
}
#south_america:hover path {
fill:white;
}
</style>
しかし
fill
の色がCSSのトランジションでフェードインすることができません。
どのように解決するには?
CSSで遷移・フェードを行うには、開始値と終了値が必要です。
パスの色はSVG属性で設定するため
fill="#FAFAFA"
で設定するため、CSSでは処理されず、遷移がフェードアウトしません。
代わりにCSSで色を設定すると、遷移は期待通りの振る舞いをします。
というわけで、遷移を動作させるために必要なことは
#europe
から遷移するためのスタートフィルを与えることです。
path { transition: fill .4s ease; }
/* set fill for before and for during hover */
#europe path { fill: red; }
#europe:hover path { fill: white; }
以下は、動作中の JSFiddle .
あるいは、インラインで行う方が便利な場合もあります (
style=""
):
<path style="fill: #FAFAFA;" d="..."/>
CSSでフェードを行うためには、CSS/インラインスタイルで開始と終了の値を処理する必要があります(SVGの
fill=
属性を使用するのとは対照的です)。
関連
-
[css3]グレーモードやブラックモードを実現するCSS3フィルター(フィルター)サンプルコード(Webページ用
-
[CSSチュートリアル】ピュアCSSでDIVホバーを実現するサンプルコード(固定位置編)
-
[CSSチュートリアル】CSSでマウスの位置をマッピングし、マウスの動きでページ要素を制御する効果を実現する(コード例)
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] CSSでテキストや画像の背景を透明にするには?
-
[解決済み] CSSのdisplayプロパティで遷移する
-
[解決済み] svg要素の色を変更するには?
-
[解決済み] 複数のプロパティを持つCSSトランジションショートハンドリング?
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[CSSチュートリアル】CSS たった1行のコードでアバターと国旗の一体化を実現
-
[css3]CSS3タブアニメーションの背景切り替えの動的効果例
-
[css3]css3におけるtransformプロパティの4つの機能
-
[CSSチュートリアル】CSS3Animationで実現する簡単な指のクリックアニメーションの例
-
[CSSチュートリアル】新しいCSS:whereと:is擬似クラス関数とは?
-
[css3]グレーモードやブラックモードを実現するCSS3フィルター(フィルター)サンプルコード(Webページ用
-
[CSSチュートリアル】CSSで実現するTikTokのテキストジッター効果例
-
[css3]css3によるフレックスレイアウト幅の解決方法が有効でない件
-
[CSSチュートリアル】背景画像画面の適応的な実装を実現するCSS
-
[css3]本のページをめくるような効果を実現するcss3サンプルコード