●PageMenu:コードブロックのフォントを切り替える
概要
JavaScriptの習得を目指す試みの一環
PageMenuによってCSSを変更したい
とりあえず私はコードブロックのフォントを適宜変更したいのでそれを実装する
参考
/daiiz/新書モード
JavaScriptでCSSを動的に変更する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
これはたまたま見た記事だけど同じことを書いてある記事は世の中にたくさんある
挙動
ボタンをクリックする度にCSSのオンオフが切り替わる
CSSを設定したclassを付けたり外したりしている
code:script.js
scrapbox.PageMenu.addMenu({
title: 'フォント変更',
image: 'https://i.gyazo.com/7057219f5b20ca8afd122945b72453d3.png', // Scrapboxアイコン
onClick: () => {
const className = 'changefont'; // 適当なクラス名を用意する
let c = document.querySelectorAll('.line code'); // 変更したい部分を抽出する
for (let i = 0; i < c.length ;i++){ // そのそれぞれについて
// クラスが既に付与されていれば外す、付与されていなければ付与する
ci.classList.contains(className) ?
ci.classList.remove(className) : ci.classList.add(className);
};
},
})
code:style.css
.line code.changefont {
font-family: "UD デジタル 教科書体 NK-B", "MotoyaLMaru W3 mono", "Kosugi Maru", "Roboto",Helvetica,Arial,"Hiragino Sans",sans-serif;
color: #220;
}
備考
コードブロックはdocument.querySelectorAll('.line code')で取得する
該当する部分が全部リストになっているので、その全てについて処理する
どのクラスを取得すればいいのかというのはデベロッパーツールを使って自力で探し出す
→Lab|アウトライナー日誌:バレットを「┠」にしたらバレット感に邪魔されなくなった#61ea131bf65300000077d017
切り替えには条件演算子(三項演算子)を使っている
条件式 ? trueの時 : falseの時
#UserScript #UserCSS