Font Awesomeはキットなんかを使うと好みのアイコンセットを利用できるようですが、コピーアイコンだけ使いたい、という用途にはいささか重すぎる気がするので、簡単に扱う方法を考えてみました。
なお、このページのSVGアイコンはすべてFont Awesomeからダウンロードしています(Free版)。 Font Awesome Free License
fetchしてtext()を得てinnerHTMLを置き換えてしまえばよい。
でもやっぱりローカルファイルだとCORSに引っかかる。
data-iconとして指定しちゃう。
dataset.iconで取得できる。
基本的にはこの7行のスクリプトがあればFont Awesomeは使える。
spanからiに変えている。
url(...)を設定してPromiseを解決する。
svg-icon-as-backgroundクラスを設定しておく。
svg-icon-not-foundというクラスを追加。
iを使っているとフォントスタイルを何か指定しないとイタリックになっちゃう。
カットはHTMLとスクリプトで仲良くアイコン名を間違えている(最後の「s」がない)。 ペーストはHTML側でpasteというアイコンを指定しているが、正しくは「pen-to-square」である。
data-icon
属性がなければ
data-icon
に
innerText
を設定してしまい、アイコンのファイル名は
data-icon
から取る。
元からあるテキストは
span
の中に入れ、その前に読み込んだSVGを追加している。
アイコンがあればアイコンの下に文字列、なければ文字列だけをボタンに表示するようなことが可能。
i.svg-icon-rev3a span { display: none; }
とすれば、スクリプトをいじらなくてもアイコン下の文字を消せる。
Copyright (C) 2019-2023 akamoz.jp
$Id: index.htm,v 1.4 2023/10/26 15:04:02 you Exp $