jQuery砌体-砌体重新加载后调用方法
jQuery masonry - call method after masonry reload
我使用Twitter Bootstrap和jQuery Masonry来开发一个新网站。我将新的元素添加到砖石的容器中。
这些元素既没有附加到现有的子元素,也没有前置到它们之间,而是插入在它们之间,这取决于这样的排序顺序:
var elem = $(boxes[rand2]);
$(".post").each(function(i){
if(parseFloat($(this).data("weight"))<=weight){
elem.insertBefore(this);
return false;
}
else if (i == $(".post").length - 1) {
elem.insertAfter(this);
return false;
}
});
到目前为止,这是完美的。我想实现的是,元素只有在到达目的地时才会显示。我不想禁用动画,但新元素的空间应该出现(空),只有当所有东西都通过砖石重新排列时,新元素才会出现。
我以为会有一个回调操作,在重新加载后触发,如下所示:
$('#posts').masonry('reload',function(){
alert('re-aligning finished');
});
但这不起作用,它很早就开始了。
所以现在,我做了
$('#posts').masonry('reload',function(){
window.setTimeout(showElem,500);
});
function showPosts(){
$('.post').show();
}
这似乎奏效了,但固定的500毫秒超时并不是一个真正漂亮的解决方案。。。
那么,有什么建议吗?
我猜您已经在使用jQuery了。也许使用延迟对象是有用的。
您能在文档加载后再做吗?
(function($) {
$(document).ready(documentReadyFunction);
$(window).resize(windowResizeFunction);
$(window).load(windowLoadFunction);
function documentReadyFunction() {
//your inserted html here
}
function windowResizeFunction() {
//resize here
}
function windowLoadFunction() {
//do masonry here
}
})(jQuery);
相关文章:
- jQuery加载方法字符集
- html5:一个很好的加载方法
- 检查浏览器是否支持iFrame上的加载方法
- ExtJS文件加载方法
- 陷入jQuery加载方法
- 使用jquery加载方法是一种好的做法吗
- JWPlayer在使用API加载方法时无法在iPad / iPhone上播放
- 如何在页面加载方法中调用 Javascript 函数
- HTML5 / Javascript图像加载方法和传递给变量
- ID 存储在 JS 变量中的 AJAX 加载方法
- 使用加载方法发送表单后隐藏“提交”按钮
- 在JQuery加载方法中使用post传递数据
- 如何调整jQuery加载的内容的大小's使用CSS的加载方法
- jQuery()在for循环内部加载方法,如何在出现错误时退出
- 重新加载方法:响应文本与窗口.位置.href(1 次旅行与 2 次)
- 使用Jquery加载方法与Slick插件
- Jquery加载方法上传多个页面
- Php包含方法和Jquery加载方法
- 将焦点设置在使用jQuery加载方法导入的其他页面的元素上
- 触发器以编程方式选择加载方法