WeChatアプレットでSVGアイコンを使用する方法

WeChatアプレットでSVGアイコンを使用する方法

SVG は、さまざまな利点があるため、近年広く使用されています。残念ながら、WeChat ミニプログラムは、これまでのところ XML 形式の SVG の使用をサポートしていないため、SVG の柔軟性が大幅に低下しています。ほとんどの人は、WeChat ミニプログラムで SVG アイコン ソリューションの使用をあきらめています。
では、WeChat アプレットで SVG アイコンを快適に使用する方法は本当にないのでしょうか?まず、SVG アイコンを使用するための要件を分析しましょう。

  • 導入して活用できる
  • 色を調整する機能

まず、1点目については問題ありません。WeChatアプレットはImage.src形式でのSVGの導入をサポートしています。次の部分はこの記事の重要な部分であり、画像形式の SVG の色を変更する方法について説明します。

最近 CSS を勉強していたところ、DOM の不透明部分に影を落とすことができるプロパティがあることに気付きました。このプロパティは drop-shadow で、その値は box-shadow とほぼ同じです。この属性を使用すると、SVG 画像に変更可能な色の影を付けることができ、元の部分を非表示にして変更可能な色の SVG アイコンを実現できます。

次に、実践してみましょう。まず、DOM 構造を構築します。

<view class="svg_icon">
 <image class="svg_icon-inner" src="/path/icon.svg"/>
</ビュー>

次に、CSS を追加します。

.svg_アイコン {
 ディスプレイ: インラインフレックス;
 幅: 1em;
 高さ: 1em;
 オーバーフロー: 非表示;
}

.svg_アイコンインナー {
 幅: 1em;
 高さ: 1em;
 変換: translateY(-1em);
 フィルター: ドロップシャドウ(0 1em 0 現在の色);
}

DOM 構造と CSS がこのように設定されている理由を説明します。まず、svg_icon はアイコン全体のコンテナーであり、アイコン サイズ (1em = 親コンテナーのフォント サイズ) の設定と余分な部分 (つまり、アイコンの元の部分) の非表示を担当します。一方、svg_icon-inner は SVG のレンダリングと色付きの影の投影を担当します。svg_icon-inner を親コンテナーと同じ幅と高さに設定し、投影の反対方向にオフセットを設定することで、SVG の色を変更する必要性を実現できます (投影色を currentColor に設定すると、アイコンの色を親コンテナーのフォント色に合わせて変更できます)。

このソリューションには欠点があります。ページに変換アニメーションがあり、それがトリガーされると、アイコンがちらつきます。具体的な理由はわかりません。どなたかアドバイスをいただければ幸いです。

これで、WeChat ミニプログラムで SVG アイコンを楽しく使用する方法についての記事は終了です。WeChat ミニプログラムで SVG アイコンを使用する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • WeChatアプレットにSVGベクターアイコンを導入する方法
  • 今日、ミニプログラムは正式にSVGをサポートします
  • WeChatアプレットのストア評価コンポーネントと、vueでsvgを使用して実装された評価表示コンポーネント
  • WeChatアプレットでSVGベクターアイコンを使用する方法の詳細な説明

<<:  MySQL innodb例外の修復に関する経験の共有

>>:  Linux で大容量メモリ ページを持つ Oracle データベースを最適化する方法

推薦する

Windows で MySQL 5.7.17 圧縮バージョンをインストールするときに遭遇する落とし穴

まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...

Linuxでユーザーが所属するグループを変更する方法

Linuxでユーザーが所属するグループを変更する1. ユーザーのグループを設定する usermod ...

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

dockerカスタムイメージでphp7をビルドする方法

まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...

MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル (Linux)

この記事では、Linux MySQL 8.0.18のインストールと設定のグラフィックチュートリアルを...

タグ li はブロックレベル要素ですか?

なぜ高さを設定できるのでしょうか。<h1 /> などの要素とは異なり、「セミインライン」...

Tomcatにデプロイされたアプリケーションがフロントエンドページにアクセスできない問題について

最近、実践的なトレーニング プロジェクトを実行する際に ssm フレームワークを使用しました。プロジ...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...

Dockerデータストレージのバインドマウントの詳細な説明

この記事を読む前に、Volumes について予備知識を身に付けておいてください。詳細については、こち...

セマンティック XHTML タグの紹介

まず最初に指摘しておきたいのは、人間は視覚的な区分を通じてコン​​テンツの意味を判断できるが、検索エ...

MACOS で MySQL ルートパスワードを忘れた場合の解決策

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

CentOS7.5にHarbor1.7をインストールして設定するプロセス全体

1. 必要なパッケージをダウンロードする wget -P /usr/local https://st...