¿es posible aleatorizar los ladrillos en la plugin JQuery Masonry para que cada vez que la página cargue se vea una disposición diferente? No hay opción para el azar por lo que puedo decir.Aleatorizar ladrillos en mampostería
Gracias!
¿es posible aleatorizar los ladrillos en la plugin JQuery Masonry para que cada vez que la página cargue se vea una disposición diferente? No hay opción para el azar por lo que puedo decir.Aleatorizar ladrillos en mampostería
Gracias!
Encontré una respuesta en los foros de jQuery y la ajusté un poco para mis necesidades. En pocas palabras - se tire los bits de HTML dentro de su mampostería() soporte y que aleatoriamente la colección, a continuación, volver a colocarla:
$(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
});
});
(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');
});
creo un plugin más apropiado para su sería Isotope, que está construido de la misma manera que la albañilería (¡y del mismo tipo!) pero tiene funciones de clasificación y filtrado integradas
Sí, tiene un simple $ container.isotope ('shuffle'); opción :) – Systembolaget
Problema con el isótopo es que no se puede usar en productos comerciales sin una licencia. – user1429980
Parece que no puedo hacer que esto funcione, ¿esto reemplaza la secuencia de comandos de albañilería en html? es #masonry the contenedor y .children la clase en el div? – mark
No creo que esto pueda funcionar debido a la naturaleza de la mampostería. – Bytemain
El fragmento de arriba funciona muy bien. Debe cambiar todas las instancias de #masonry para que coincida con su contenedor de mampostería. Además, puede usar $ ('# masonry'). Masonry ('reload'); después de la reproducción aleatoria si la cuadrícula ya está en vivo. – askon