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 データベースを最適化する方法

推薦する

Linux での nginx のインストール、展開、使用方法の詳細な説明

目次1. ダウンロード2. 展開3. Nginxログ関連の設定4. ファイルダウンローダーとして n...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

Vueフィルターとカスタム命令の使用

目次フィルター01.とは02. やり方(1)フィルターを定義する(2)使用方法(3)フィルタパラメー...

MySQL でパーセンテージと最初の数パーセントを表示する方法

目次必要とする実装コードデータベース数日前、友人からこれを書くのを手伝ってほしいと頼まれました。ただ...

自作メニューをクリックする効果を実現するJavaScript

この記事では、自作メニューをクリックする効果を実現するためのJavaScriptの具体的なコードを参...

mysql バックアップ戦略の実装 (フルバックアップ + 増分バックアップ)

目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...

Docker Composeオーケストレーションツールの詳細な説明

Docker の作成Docker Compose は、複数の Docker コンテナを定義して実行す...

Nginx http を https にアップグレードする手順を完了する

httpとhttpsの違いは一部のウェブサイトでは、http を開くと、安全ではないというメッセージ...

CocosCreatorでシューティングゲームを作る詳しい解説

目次シーン設定ゲームリソース砲塔の回転動的に生成された弾丸衝突計算効果を高めるターゲットの動き弾薬庫...

Mysqlはブール型の演算を設定します

Mysqlはブール型を設定します1. Tinyintタイプテストテーブルを作成し、blフィールドをブ...

ウェブデザインにおけるカラーマッチングの優れた例30選

本日は、色彩の応用に関する優れた事例を 30 件集めて、皆さんにご紹介したいと思います。これらの事例...

MySQL GRANT ユーザー認証の実装

承認とは、ユーザーに特定の権限を付与することです。たとえば、新しく作成したユーザーに、すべてのデータ...

Reactエラー境界コンポーネント処理

React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...

Yahooのフロントエンド最適化に関する35のルールについての簡単な説明

概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...

GDBデバッグMySQL実戦ソースコードコンパイルとインストール

ソースコードをダウンロード git クローン https://github.com/mysql/my...