2017-07-25 66 views
1

正如您在下面的代碼筆中看到的那樣;當第一個圖像沒有被填充時,有一個空間可以放在那裏。Mansory/Isotope不適用於不同寬度的元素

我還沒有找到任何有百分比定義元素寬度的解決方案。

Codepen:https://codepen.io/anon/pen/qXEMaz

HTML:

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 

<script src="https://unpkg.com/[email protected]/imagesloaded.pkgd.min.js"></script> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

    <script src="https://unpkg.com/[email protected]/dist/isotope.pkgd.min.js"></script> 
<div class ="container"> 
<div class=" isotope row gutter"> 
        <div class="grid-sizer col-2 mosaic-item"> 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
        </div> 

        <div class="col-1 mosaic-item "> 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
        </div> 
        <div class="col-2 mosaic-item "> 
         <img class="img-responsive" src="http://via.placeholder.com/350x150"></img> 
        </div> 
        <div class="col-2 mosaic-item "> 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
        </div> 

        <div class="col-2 mosaic-item "> 
         <img class="img-responsive" src="http://via.placeholder.com/350x150"></img> 
        </div> 

        <div class="col-2 mosaic-item "> 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
        </div> 

     </div> 
</div> 

CSS:

.col-1 , 
.col-1 { 
    width: 100%; 
} 

.col-2 , 
.col-2 { 
    width: 49.99%; 
} 

@media only screen and (max-width: 992px) { 
    .col-2 , 
    .col-2 { 
     width: 50%; 
    } 
} 

@media only screen and (max-width: 767px) { 
    .col-2 , 
    .col-2 { 
     width: 100%; 
    } 
} 

.col-1 , 
.col-2{ 
    float: left; 
} 
.gutter>div{ 
    padding: 10px; 
} 

.gutter img{ 
    width: 100%; 
} 

的Javascript/jQuery的:

$(document).ready(function(){ 
    isotope(); 
}); 
function isotope(){ 
var $portfolio = $('.isotope'); 
     $portfolio.imagesLoaded(function() { 
      $portfolio.isotope({ 
       isOriginLeft: true, 
       stagger: 30, 
       masonry: { 
       percentPosition: true 
       } 
      }); 
      $portfolio.isotope(); 

     }); 
} 

enter image description here

謝謝。

+0

這個代碼在CSS:'排水溝> div'用於空間出來的塊。你可以發佈你的圖片嗎? – Syfer

+0

排水溝> div正在被用來將它們分開一些,但問題是可以填充的大空白空間。這是圖片:http://imgur.com/a/Cohn9我希望紅色的空間會被填滿,因爲有適合的圖像。我不想切換元素順序。基本上,我不希望有任何空白空間時,可以有圖像。 – gemas

回答

0

這是你在追求什麼?我所做的只是在第一個之後添加了另一個2列塊。在全屏模式下檢查代碼以查看列的工作。

$(document).ready(function(){ 
 
    isotope(); 
 
}); 
 
function isotope(){ 
 
var $portfolio = $('.isotope'); 
 
     $portfolio.imagesLoaded(function() { 
 
      $portfolio.isotope({ 
 
       isOriginLeft: true, 
 
       stagger: 30, 
 
       masonry: { 
 
       percentPosition: true 
 
       } 
 
      }); 
 
      $portfolio.isotope(); 
 

 
     }); 
 
} 
 
.col-1 , 
 
.col-1 { 
 
    width: 100%; 
 
} 
 

 
.col-2 , 
 
.col-2 { 
 
    width: 49.99%; 
 
} 
 

 
@media only screen and (max-width: 992px) { 
 
    .col-2 , 
 
    .col-2 { 
 
     width: 50%; 
 
    } 
 
} 
 

 
@media only screen and (max-width: 767px) { 
 
    .col-2 , 
 
    .col-2 { 
 
     width: 100%; 
 
    } 
 
} 
 

 
.col-1 , 
 
.col-2{ 
 
    float: left; 
 
} 
 
.gutter>div{ 
 
    padding: 10px; 
 
} 
 

 
.gutter img{ 
 
    width: 100%; 
 
}
  <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 
 

 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
 
    <script src="https://unpkg.com/[email protected]/imagesloaded.pkgd.min.js"></script> 
 
\t <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 

 
    <script src="https://unpkg.com/[email protected]/dist/isotope.pkgd.min.js"></script> 
 
<div class ="container"> 
 
<div class=" isotope row gutter"> 
 
        <div class="grid-sizer col-2 mosaic-item"> 
 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
 
         
 
        </div> 
 
        <div class="grid-sizer col-2 mosaic-item"> 
 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
 
         
 
        </div> 
 

 
        <div class="col-1 mosaic-item "> 
 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
 
        </div> 
 
        <div class="col-2 mosaic-item "> 
 
         <img class="img-responsive" src="http://via.placeholder.com/350x150"></img> 
 
        </div> 
 
<div class="col-2 mosaic-item "> 
 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
 
        </div> 
 
        
 
        <div class="col-2 mosaic-item "> 
 
         <img class="img-responsive" src="http://via.placeholder.com/350x150"></img> 
 
        </div> 
 

 
        <div class="col-2 mosaic-item "> 
 
         <img class="img-responsive" src="http://via.placeholder.com/150x350"></img> 
 
        </div> 
 

 
     </div> 
 
</div>

+0

對不起,我不想添加額外的imgs或更改當前的順序,我希望它是動態的。我希望mansory優化使用的空間,所以網格中會有最少的空白空間,我不介意底部的空白空間。 – gemas

+0

這一切都取決於您使用的CSS。如果你使用的是雙列div,那麼當這些塊按照這種方式編碼時,它將在側面留下空間。 – Syfer

+0

不是mansory組織imgs,所以它保持最小的空白?因爲只需將其中一個圖像移動到那裏(最後一個圖像,其中col-2具有相同的高度),就可以容易地填充空白區域。 – gemas