jQueryで画像のランダム表示をさせ、レスポンシブ時に表示枚数を変更させたいです。
PCでは横に5枚2列、SPでは横に3枚3列で表示させたいのですが、
表示枚数の変更の仕方が分かりません。
今のコードではSPにした時、4列目に1枚出てきてしまうので、9枚に変えたいです。
ご教示頂けますでしょうか。
該当のソースコード
HTML
1<ul randomPh="10" class="randam_1"> 2 <li><img src="img/user/01.jpg" /></li> 3 <li><img src="img/user/02.jpg" /></li> 4 <li><img src="img/user/03.jpg" /></li> 5 <li><img src="img/user/04.jpg" /></li> 6 <li><img src="img/user/05.jpg" /></li> 7 <li><img src="img/user/06.jpg" /></li> 8 <li><img src="img/user/07.jpg" /></li> 9 <li><img src="img/user/08.jpg" /></li> 10 <li><img src="img/user/09.jpg" /></li> 11 <li><img src="img/user/10.jpg" /></li> 12 <li><img src="img/user/11.jpg" /></li> 13</ul>
scss
1.randam_1 { 2 li { 3 display: inline-block; 4 width: calc(100%/5); 5 @include sp { 6 width: calc(100%/3); 7 } 8 img { 9 width: 100%; 10 } 11 } 12} 13
js
1$(function () { 2 $.fn.extend({ 3 randomPh: function (num) { 4 return this.each(function () { 5 var chn = $(this).children().hide().length; 6 for (var i = 0; i < num && i < chn; i++) { 7 var r = parseInt(Math.random() * (chn - i)) + i; 8 $(this).children().eq(r).show().prependTo($(this)); 9 } 10 }); 11 } 12 }); 13 14 $("[randomPh]").each(function () { 15 $(this).randomPh($(this).attr("randomPh")); 16 }); 17 18}); 19
回答2件
あなたの回答
tips
プレビュー