Jquery 砖石插件:调整div大小不会导致重新洗牌
将砖石项目包装在1000px宽的div中,我有一个按钮,可以使用jQuery的Jquery 砖石插件:调整div大小不会导致重新洗牌,jquery,css,layout,jquery-masonry,Jquery,Css,Layout,Jquery Masonry,将砖石项目包装在1000px宽的div中,我有一个按钮,可以使用jQuery的addClass()将div调整为2000x,问题是砖石项目不会重新排列以填充额外的1000px空间,我知道调整大小是有效的,因为调整浏览器窗口的大小会导致重新排列 砌体: $(function(){ $('#container').masonry({ // options itemSelector : '.item', columnWidth : 240
addClass()
将div调整为2000x,问题是砖石项目不会重新排列以填充额外的1000px空间,我知道调整大小是有效的,因为调整浏览器窗口的大小会导致重新排列
砌体:
$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 240
});
});
$("a.button").toggle(function(){
$(this).addClass("flip");
$("div#container").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("resize");
});
width: 1000px; /* default */
width: 2000px !important; /* on button press */
按钮:
$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 240
});
});
$("a.button").toggle(function(){
$(this).addClass("flip");
$("div#container").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("resize");
});
width: 1000px; /* default */
width: 2000px !important; /* on button press */
CSS:
$(function(){
$('#container').masonry({
// options
itemSelector : '.item',
columnWidth : 240
});
});
$("a.button").toggle(function(){
$(this).addClass("flip");
$("div#container").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("resize");
});
width: 1000px; /* default */
width: 2000px !important; /* on button press */
我试着运行('a')。使用相同的按钮单击砌体函数,它似乎工作正常,但问题仍然存在
有什么建议吗?我被难住了:/我认为,当单击“重新调整大小”按钮时,您需要再次运行砌体功能
$("a.button").toggle(function(){
$(this).addClass("flip");
$("div#container").fadeOut("fast", function() {
$(this).fadeIn("fast").addClass("resize");
// run masonry again
$('#container').masonry({
itemSelector : '.item',
columnWidth : 240
});
});
从中,调用
.massy('reloadItems')
将获取(可能是新的)与itemSelector
匹配的项目并重新定位砖块,但调用.massy()
将仅根据其项目的最新尺寸重新定位项目。尝试使用jquery触发调整大小事件:
$(window).trigger('resize');
这对我有用 你有什么办法吗?当单击按钮时,我运行了默认的砌石函数,但问题仍然存在,它只是继承了调整大小之前的情况,除非我调整浏览器窗口的大小:/另外,$(“#container |”).massy(“reload”);也可以实现这一点。这是一种触发重新加载功能的非常糟糕的方法,因为它会导致浏览器重新绘制并触发其他不需要的调整大小侦听器。更不用说它很脆弱,因为massy上的调整大小侦听器可以被禁用。