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 $