前の内容の骨子。
前の内容
ページ内に特定classが付いてたら発火するっていうのを作った。
単純にclassを指定して動作を付ける内容だと1回(1個)の処理で終わってしまうので、複数箇所で発火するっていうのをやっていく必要がある。それは.each()で仕込む。
作例
こういうのがあったとして。
<div class="parent">
<div class="child_A"></div>
<div class="child_B"></div>
</div>
<div class="parent">
<div class="child_A"></div>
<div class="child_B"></div>
</div>
<div class="parent">
<div class="child_A"></div>
<div class="child_B"></div>
</div>
<div class="parent">
<div class="child_A"></div>
<div class="child_B"></div>
</div>
<div class="parent">
<div class="child_A"></div>
<div class="child_B"></div>
</div>
「すべての.child_Aを.child_Bの後ろに移動する」内容を組むとこうなる。
$(function(){
$('.child_A').each(function(){
$(this).insertAfter($(this).next('.child_B'));
})
});
PC/SPで切り替えるとこうなる。
$(function(){
$(window).on('load resize', function(){
if(window.matchMedia('(max-width:767.98px)').matches){
$('.child_A').each(function(){
$(this).insertAfter($(this).next('.child_B'));
})
}else{
$('.child_A').each(function(){
$(this).insertBefore($(this).prev('.child_B'));
})
}
})
})
活用シーン
ページ全体に掛かる装飾もそうなんだけど、それこそ並びを変えたいけど入れ子が足りないとかhtmlをいじったらcssに関わってデザインが崩れるから面倒が増えるとか、そういう時に。
コメント