2017-07-25 4 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

このコード: '側溝> div'がブロックアウトスペースに使用されています。あなたがしているもののイメージを投稿できますか? – Syfer

+0

gutter> divはちょうどそれらのスペースを空けるために使用されていますが、問題は埋めることができる大きな空きスペースです。ここにイメージがあります:http://imgur.com/a/Cohn9そこに収まるイメージがあるので、私は赤色のスペースが満たされることを望んでいました。私は要素の順序を変更したくない。基本的には、画像がある場合は空白を入れたくありません。 – gemas

答えて

0

これはあなたの後ですか?私がしたことは、最初のものの後に別の2列のブロックを追加することでした。フルスクリーンモードでコードをチェックして、列が機能することを確認してください。 CSSの

$(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

申し訳ありませんが、追加のimgを追加したり、現在の注文を変更したりする必要はありません。動的にしたいです。私は、使用されているスペースを最適化するためにマンショーを望んでいるので、グリッドにできるだけ小さい空白があります。 – gemas

+0

これは、使用しているCSSによって異なります。 2列のdivを使用している場合は、ブロックがそのようにコード化されているので、横にスペースが残されます。 – Syfer

+0

空白を最小限に保つようにimgsを整理しないでください。その空白は、imgの1つをそこに移動するだけで簡単に埋めることができます(最後のimgはcol-2で同じ高さです)。 – gemas

関連する問題