JQueryプラグインMasonryのブリックをランダム化して、ページが読み込まれるたびに異なる配置が表示されるようにすることは可能ですか?私が知る限り、ランダムのオプションはありません。
ありがとう!
JQueryプラグインMasonryのブリックをランダム化して、ページが読み込まれるたびに異なる配置が表示されるようにすることは可能ですか?私が知る限り、ランダムのオプションはありません。
ありがとう!
jQueryフォーラムで答えを見つけたので、自分のニーズに合わせて少し調整しました。つまり、 masonry() ホルダー内の HTML ビットをプルし、コレクションをランダム化してから、元に戻します。
$(document).ready(function(){
var ar = $('#masonry').children();
ar.sort(function(a,b){
// Get a random number between 0 and 10
var temp = parseInt( Math.random()*10 );
// Get 1 or 0, whether temp is odd or even
var isOddOrEven = temp%2;
// Get +1 or -1, whether temp greater or smaller than 5
var isPosOrNeg = temp>5 ? 1 : -1;
// Return -1, 0, or +1
return( isOddOrEven*isPosOrNeg );
});
$('#masonry').html(ar);
$('#masonry').masonry({
columnWidth:220,
animate: true
});
});
あなたにとってより適切なプラグインはIsotopeだと思います.Masonryと同じ方法で(そして同じ人によって!)構築されていますが、ソート機能とフィルタリング機能が組み込まれています
(function($) {
$.fn.randomize = function(childElem) {
return this.each(function() {
var $this = $(this);
var elems = $this.children(childElem);
elems.sort(function() { return (Math.round(Math.random())-0.5); });
$this.remove(childElem);
for(var i=0; i < elems.length; i++)
$this.append(elems[i]);
});
}
})(jQuery);
$(window).load(function(){
$(masonry-container).randomize(masonry-brick).masonry('reload');
});