jQueryでcssの「:before」、「:after」などの疑似要素のstyleを変更する方法です。
色や背景などのデザインだけでなく、contentの内容も変更できます。
もくじ
css関連記事
レスポンシブ対応がカンタンに!CSS aspect-ratioプロパティの使い方
jQuery UIのsortableを使ってリストをドラッグで並び替える
HTMLのsvgタグとJavaScriptで円グラフの画像をつくる
select・optionタグをjQueryで、プルダウンの選択値を取得、変更する
placeholderを見やすく!jQuery+css3でつくるフローティングラベル
効率よくセレクタを指定してcss効かせるサンプル!21選
楽天スマホで使える!classを使わずにcssを適用する裏技
cssのkeyframesで画像に動きや変化のアニメーションをつけるサンプル10選
cssで要素に動きや変化をアニメーションでつける、keyframesの使い方
jQueryで要素のcssを変更する
JavaScript
$('#red').css('color', 'red');
要素に対しては、こんな感じで、idがredの要素の文字色を赤色に変更できます。
jQueryでcssの疑似要素は変更できない
JavaScript
$('#red:before').css('color', 'red');
こんな感じで疑似要素にアクセスしたいところですが、疑似要素は非DOMのため、これではできません。
jQueryでcssの疑似要素を変更させる方法
方法は2つあります。
1. styleタグをjQueryで操作してcssの疑似要素を反映させる方法。
2. classをjQueryで操作してcssの疑似要素を反映させる方法。
styleタグをjQueryで操作して疑似要素を反映させる
html
<style id='stylesheet' type='text/css'></style>
JavaScript
$("#stylesheet").html(' //cssの記述 #red:before{ content: "変更"; color: red; } ');
可変させたい箇所のみを記載する用の、styleタグにidを振って、その中に疑似要素のcssを入れ込みます。
記載するのは、css記述方法でOKです。
すると疑似要素でもcssを変更することができます。
ただし、中身を全て変更するので、変更が必要な箇所だけを記載しましょう。
classをjQueryで操作して疑似要素を反映させる
See the Pen
by むぅ (@mugenweb)
on CodePen.0
<h3 class="open_h3 btn-1">BRAND INFO</h3>
css
.open_h3.active::after { content: "▲"; } .open_h3::after { content: "▼"; }
JavaScript
$('.btn-1').click(function () { $(this).toggleClass('active'); });
この例では、可変させたい箇所に、active
のクラスを付け外しすることでcssの疑似要素を変更します。
クラスを変更することで、疑似要素のcontentで指定しているテキストを変更させています。
アコーディオンメニューでも使っています。
コメント