好的,所以我也一直在尝试弄清楚这个布局,我得到的最接近的是使用 PHP/JAVASCRIPT 来构建它。
这个想法是 1) 使用一种尺寸构建和排列所有可能的位置。2)然后遍历该数组并将数组中的可能位置标记为打开。3) 然后浏览新的职位列表并显示空缺职位。
这是我到目前为止得到的代码。这会产生 300 像素 X 300 像素的框,并在您指定的数组中插入 600 x 600 像素的框。
我希望这会有所帮助,如果您找到改进方法,请发布。
仅供参考:我真的是在这里发帖的新手,似乎无法正确发布代码。
大批:
$mod[ 0 ] = array( 600 );
$mod[ 1 ] = array( 300 );
$mod[ 2 ] = array( 300 );
$mod[ 3 ] = array( 300 );
$mod[ 4 ] = array( 300 );
$mod[ 5 ] = array( 300 );
PHP:
define( 'XPOS', 0 );
define( 'YPOS', 1 );
define( 'WIDTH', 2 );
$pos = array();
$x = 0;
$y = 0;
$width = 300;
for( $i = 0; $i < sizeof($mod); ++$i )
{
$width = $mod[$i][0];
$shifted = $mod[$i][1];
$pos[ $i ] = array( $x, $y, $width, $shifted );
$y += 300;
if( $y >= (300 * 3) )
{
$x += 300;
$y = 0;
}
}
for( $i = 0; $i < sizeof($pos); ++$i )
{
if( $pos[$i][WIDTH] > 300 )
{
$pos[$i +1][3] = 1;
$pos[$i +3][3] = 1;
$pos[$i +4][3] = 1;
}
}
for( $i = 0; $i < sizeof($pos); ++$i )
{
if( $pos[$i][3] == 0 )
{
echo 'X:' . $pos[$i][XPOS] . ' - Y:' . $pos[$i][YPOS] . ' - W:' . $pos[$i][WIDTH] . ' - S:' . $pos[$i][3] . '<br/>';
echo '<li class="collage-img" style="height:' . $pos[$i][WIDTH] . 'px;width:' . $pos[$i][WIDTH] . 'px;" data-xpos="'. $pos[$i][XPOS] .'" data-ypos="'. $pos[$i][YPOS] .'">' . $i . '</li>';
}
}
JAVASCRIPT:
var counter = 0;
$('.collage-list li').each(function(){
var x = $(this).data( 'xpos' );
var y = $(this).data( 'ypos' );
$(this).css( 'position', 'absolute' );
$(this).css( 'top', '0' );
$(this).css( 'left', '0' );
$(this).css( 'transform', 'translate('+ x +'px, '+ y +'px)' );
$(this).css( '-webkit-transform', 'translate('+ x +'px, '+ y +'px)' );
$(this).text( counter + ' - (X:' + x + ' Y:' + y + ')' );
counter++;
});