【发布时间】:2020-12-27 17:19:23
【问题描述】:
有人可以帮我转换下面 codepen 上链接的 masonry JS 脚本,以便在反应应用程序中使用吗?
function resizeGridItem(item){
grid = document.getElementsByClassName("grid")[0];
rowHeight = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-auto-rows'));
rowGap = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-row-gap'));
rowSpan = Math.ceil((item.querySelector('.content').getBoundingClientRect().height+rowGap)/(rowHeight+rowGap));
item.style.gridRowEnd = "span "+rowSpan;
}
function resizeAllGridItems(){
allItems = document.getElementsByClassName("item");
for(x=0;x<allItems.length;x++){
resizeGridItem(allItems[x]);
}
}
function resizeInstance(instance){
item = instance.elements[0];
resizeGridItem(item);
}
window.onload = resizeAllGridItems();
window.addEventListener("resize", resizeAllGridItems);
allItems = document.getElementsByClassName("item");
for(x=0;x<allItems.length;x++){
imagesLoaded( allItems[x], resizeInstance);
}
我开始使用 React 应用程序,我想得到一点帮助,请...
提前谢谢你,非常感谢。
最好的问候
【问题讨论】:
-
你可以尝试使用这个库,npmjs.com/package/react-responsive-masonry 吗?
-
@DatHo,您好,谢谢您的回复。这个砌体模块不符合我的要求。我想要一个基于柱子最小高度的砌体,就像给出的例子一样。
标签: javascript reactjs masonry