Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在砖石结构中随机化砖块_Jquery_Random_Jquery Masonry - Fatal编程技术网

Jquery 在砖石结构中随机化砖块

Jquery 在砖石结构中随机化砖块,jquery,random,jquery-masonry,Jquery,Random,Jquery Masonry,是否可以将JQuery插件中的砖块随机化,以便每次页面加载时都可以查看不同的排列?据我所知,没有随机的选择 谢谢 我在jQuery论坛上找到了一个答案,并根据自己的需要对其进行了一些调整。简言之,您将HTML位拉入您的Massy()支架中,然后将集合随机化,然后将其放回: $(document).ready(function(){ var ar = $('#masonry').children(); ar.sort(function(a,b){ // Get a

是否可以将JQuery插件中的砖块随机化,以便每次页面加载时都可以查看不同的排列?据我所知,没有随机的选择


谢谢

我在jQuery论坛上找到了一个答案,并根据自己的需要对其进行了一些调整。简言之,您将HTML位拉入您的Massy()支架中,然后将集合随机化,然后将其放回:

  $(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
    });
  });
(函数($){
$.fn.randomize=函数(childElem){
返回此值。每个(函数(){
var$this=$(this);
var elems=$this.children(childElem);
sort(函数(){return(Math.round(Math.random())-0.5);});
$this.remove(childElem);
对于(变量i=0;i
我认为更适合您的插件是,它的构建方式与砌体相同(而且是由同一个人创建的!)但是有内置的排序和过滤功能

我似乎无法实现这一点-这是否取代了html中的砌体脚本-是#砌体容器和div上的.children类?我认为这不可行,因为砌体的性质。上面的代码片段效果很好。您需要更改#圬工的所有实例以匹配您的圬工容器。此外,您还可以使用$('#massy').massy('reload');如果网格已经处于活动状态,在洗牌之后。是的,这有一个简单的$container.同位素('shuffle');选项:)同位素的问题是,没有许可证,它不能用于商业产品。
(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');
});