【javascript】疑似要素(::after ::before)を操作する方法

以前にjavascriptでCSSを操作する方法について紹介しました。

しかし、疑似要素はjavascriptで直接操作できないので、対処法を紹介します。
HTMLとCSSの設定
HTML <!-- 最初はクラスをyenに設定しておく -->
<span class="currency yen">100000</span>
CSS
/* dollarとその疑似要素を用意しておく */
.yen, dollar {
position: relative;
}
.yen::after {
content: "円";
position: absolute;
top: 0;
right: -40px;
}
.dollar::after {
content: "ドル";
position: absolute;
top: 0;
right: -55px;
}
結果:100000
疑似要素で円が表示されました。
javascriptでクラスを変更する
javascriptで疑似要素は操作できない ので、クラスを切り替えることにより、実装します。
const btn = document.getElementById("btn");
const currency = document.querySelector(".currency");
btn.addEventListener("click", ()=>{
if(btn.textContent=='ドル'){
btn.textContent = '円';
currency.classList.remove("yen");
currency.classList.add("dollar");
} else{
btn.textContent = 'ドル'
currency.classList.add("yen");
currency.classList.remove("dollar");
}
});
結果:100000
ラジオボタンやセレクトボックスを使って実装

javascriptで疑似要素は直接操作できない。
javascriptでクラスを変更することによりコントロールする。
こんな記事も読まれています。
-
【HTML】【CSS】【javascript】電卓の作り方
電卓のソースコードを2つ紹介します。javascriptはわずか数行で書けます。
-
【JacvaScript】【CSS】たった4行のJavaScriptでできるハンバーガーメニューの作り方
たった4行のJavaScriptで作るハンバーガーメニューの作り方について紹介します。✖をつくるには、transform-originがポイントです。
- リンク
-
波紋エフェクトを表現するjqueryのripples-min.jsの使い方
jqueryのripples-min.jsを使うと簡単に水面の波紋を表現できます。波紋の広がりの速度、波紋の大きさ、波紋のブレの値を変えていろいろ表現させると面白いです。
-
【Javascript】querySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法。
JavascriptのquerySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法について解説します。querySelectorと同じように書いてしまうとエラーがでます。forEachを使うとすべてに適用できます。
- リンク
-
要素の高さを取得する方法。getBoundingClientRectとは?window.innerHeightとは?window.pageYOffsetとは?
要素の高さを取得する方法について解説します。getBoundingClientRect、window.innerHeight、window.pageYOffsetについて理解し、要素がいつ画面に現れるかを把握できるようにしましょう。
-
Javascriptを使ったページネーションの実装
トップページの記事が増えてきたので、何とかページネーションで最新の記事だけを表示できないかと思っていたら、いい記事を発見しました。カスタマイズして実装することができました。
- リンク
-
【Javascript】マウスの指す(X, Y)座標とドラッグ & ドロップを理解する
マウスの指す(X, Y)座標とドラッグ & ドロップについて解説します。mousedown, mouseover, mousemove, mouseupを使います。
-
【javascript】連想配列をテーブルできれいに表示する方法
javascript(Object.entries)を使って、連想配列の中身をテーブルできれいに表示する方法について紹介します。
- リンク