masonry ajax 没用,动态更新的内容如何以瀑布流masonry重新布局

页面第一次加载完毕后执行了masonry绘制瀑布流布局后,后续使用javascript或者ajax更新的节点内容要以masonry瀑布流布局添加到容器里面,可以使用2种方法使新增加的内容以瀑布流的形式呈现

1)对总容器调用masonry的reload方法将会重绘容器节点内的所有内容

2)对新添加的节点执行masonry的appended方法,对新添加的节点计算新新节点的位置后以瀑布流masonry形式呈现

优缺点

1)调用masonry的reload方法效率个人猜测应该会比appended方法差,因为要重新计算所有节点的位置

2)masonry的appended方法效率比较好,只对新增加点计算位置,但是选择器要注意选择到新的节点,已经布局过的不要一起选择执行appended方法,要不位置会错乱。

选择新节点的小技巧:设置了masonry的itemSelector后,masonry插件会已经布局过的节点class增加masonry-brick样式,所以只需要将选择器class="设置的itemSelector"就行了,就不会选择已经执行masonry布局的节点

masonry的reload方法

//....对容器的更新代码

$('容器的选择器').masonry('reload');

masonry的appended方法

//....对容器的更新代码

$('容器的选择器').masonry('appended',$('新节点选择器'));

综合示例,如果无法运行请自行保存为html代码运行查看效果

masonry瀑布流布局jquery插接件

function rnd(min, max) {

var tmp = min;

if (max < min) { min = max; max = tmp; }

return Math.floor(Math.random() * (max - min + 1) + min);

}

var i = 0,j=5;

function Add() {

j += i;

for (; i < j; i++)

$('#test').prepend('

test' + i + '');

// $('#test').masonry('appended', $('#test li[class="box"]'));

$('#test').masonry('reload');

}

function doMasonry() {

}

window.οnlοad=function () {

$('#test').masonry({

itemSelector: '.box'

});

};

ul{list-style:none;}

.box{width:150px;float:left;border:solid 1px black;margin:0px 5px 5px 5px;}

for (; i < j; i++) document.write('

test'+i+'');

加支付宝好友偷能量挖...

2012-11-16Web开发网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值