2017-03-10 9 views
0

私はcodepenで見つけたコードを使用してフィルタリングされたポートフォリオを設定しようとしています。私はコードを実装することができましたが、javascript関数でホバー効果を適用するコードを追加することに失敗しました。私は間違って何をしていますか?次に例を示します。https://codepen.io/creotip/pen/dfjeFフィルタリングされたポートフォリオにdivsを追加

$(function() { 
    var selectedClass = ""; 
    $(".btn").click(function() { 
     selectedClass = $(this).attr("data-rel"); 
     $("#portfolio").fadeTo(100, 0.1); 
     $("#portfolio div").not("." + selectedClass).fadeOut().removeClass('scale-anm'); 
     setTimeout(function() { 
      $("." + selectedClass).fadeIn().addClass('scale-anm'); 
      $("#portfolio").fadeTo(300, 1); 
     }, 300); 
    }); 
}); 

私はjavascriptのコードに2つのdiv(オーバーレイとテキスト)を適用したいが、私は方法がわからない:あなただけでこれを行うことができ

<div id="portfolio"> 
    <div class="tile scale-anm web all"> 
     <img src="{image:Post1}" width="100%"/> 
     <div class="overlay"> 
      <div class="text"> 
       Hello World <i class="fa fa-arrow-right" aria-hidden="true"></i> 
      </div> 
     </div> 
    </div> 

[...] 
</div> 
+0

あなたは負荷に動的にオーバーレイブロックを挿入するか、タイルのブロックを置くと、オーバーレイブロックのスライド効果を作りたいですか? このペンを見てくださいhttps://codepen.io/anon/pen/KWWLLO - これはあなたが期待しているものですか? –

+0

ようこそスタックオーバーフロー!第三者のサイトだけでなく、質問内の[mcve]に関連するすべてのコードを入力してください。 –

答えて

0

CSSの.tile div内のマークアップに.overlayを追加し、デフォルトでオーバーレイを非表示にして、.tile:hover .overlayのCSSで表示するようトリガーします。

例として、ポートフォリオの最初の画像にオーバーレイを追加しました。

$(function() { 
 
    var selectedClass = ""; 
 
    $(".fil-cat").click(function() { 
 
    selectedClass = $(this).attr("data-rel"); 
 
    $("#portfolio").fadeTo(100, 0.1); 
 
    $(".tile").not("." + selectedClass).fadeOut().removeClass('scale-anm'); 
 
    setTimeout(function() { 
 
     $("." + selectedClass).fadeIn().addClass('scale-anm'); 
 
     $("#portfolio").fadeTo(300, 1); 
 
    }, 300); 
 

 
    }); 
 
});
body { 
 
    max-width: 900px; 
 
    float: none; 
 
    margin: auto; 
 
} 
 

 
#portfolio { 
 
    margin: 1rem 0; 
 
    -webkit-column-count: 3; 
 
    -moz-column-count: 3; 
 
    column-count: 3; 
 
    -webkit-column-gap: 1rem; 
 
    -moz-column-gap: 1rem; 
 
    column-gap: 1rem; 
 
    -webkit-column-width: 33.33333333333333%; 
 
    -moz-column-width: 33.33333333333333%; 
 
    column-width: 33.33333333333333%; 
 
} 
 

 
.tile { 
 
    -webkit-transform: scale(0); 
 
    transform: scale(0); 
 
    -webkit-transition: all 350ms ease; 
 
    transition: all 350ms ease; 
 
} 
 

 
.tile:hover {} 
 

 
.scale-anm { 
 
    transform: scale(1); 
 
} 
 

 
p { 
 
    padding: 10px; 
 
    border-bottom: 1px #ccc dotted; 
 
    text-decoration: none; 
 
    font-family: lato; 
 
    text-transform: uppercase; 
 
    font-size: 12px; 
 
    color: #333; 
 
    display: block; 
 
    float: left; 
 
} 
 

 
p:hover { 
 
    cursor: pointer; 
 
    background: #333; 
 
    color: #eee; 
 
} 
 

 
.tile img { 
 
    max-width: 100%; 
 
    width: 100%; 
 
    height: auto; 
 
    margin-bottom: 1rem; 
 
} 
 

 
.btn { 
 
    font-family: Lato; 
 
    font-size: 1rem; 
 
    font-weight: normal; 
 
    text-decoration: none; 
 
    cursor: pointer; 
 
    display: inline-block; 
 
    line-height: normal; 
 
    padding: .5rem 1rem; 
 
    margin: 0; 
 
    height: auto; 
 
    border: 1px solid; 
 
    vertical-align: middle; 
 
    -webkit-appearance: none; 
 
    color: #555; 
 
    background-color: rgba(0, 0, 0, 0); 
 
} 
 

 
.btn:hover { 
 
    text-decoration: none; 
 
} 
 

 
.btn:focus { 
 
    outline: none; 
 
    border-color: var(--darken-2); 
 
    box-shadow: 0 0 0 3px var(--darken-3); 
 
} 
 

 
::-moz-focus-inner { 
 
    border: 0; 
 
    padding: 0; 
 
} 
 

 
.overlay { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    background: rgba(0, 0, 0, 0.8); 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
    color: #fff; 
 
    opacity: 0; 
 
    transition: opacity .5s; 
 
} 
 

 
.tile:hover .overlay { 
 
    opacity: 1; 
 
}
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
<link href="https://npmcdn.com/[email protected]/css/basscss.min.css" rel="stylesheet"/> 
 
<div class="toolbar mb2 mt2"> 
 
    <button class="btn fil-cat" href="" data-rel="all">All</button> 
 
    <button class="btn fil-cat" data-rel="web">Websites</button> 
 
    <button class="btn fil-cat" data-rel="flyers">Flyers</button> 
 
    <button class="btn fil-cat" data-rel="bcards">Business Cards</button> 
 
</div> 
 

 
<div style="clear:both;"></div> 
 
<div id="portfolio"> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/2-mon_1092-300x234.jpg" alt="" /> 
 
    <div class="overlay"> 
 
      <div class="text"> 
 
       Hello World <i class="fa fa-arrow-right" aria-hidden="true"></i> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div class="tile scale-anm bcards all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/jti-icons_08-300x172.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/emi_haze-300x201.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/codystretch-300x270.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm flyers all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm bcards all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm flyers all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/jti-icons_08-300x172.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm flyers all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/transmission_01-300x300.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm flyers all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/the-ninetys-brand_02-300x300.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm bcards all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/15-dia_1092-1-300x300.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm bcards all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/emi_haze-300x201.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="http://demo.themerain.com/charm/wp-content/uploads/2015/04/transmission_01-300x300.jpg" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm web all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" /> 
 
    </div> 
 
    <div class="tile scale-anm bcards all"> 
 
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" /> 
 
    </div> 
 
</div> 
 

 
<div style="clear:both;"></div>

+0

私はこれをこの方法で実装しましたが、ポートフォリオカテゴリを選択したときにjavascriptコードを使用すると、オーバーレイが表示されなくなりました。 – blandz

+0

@blandzああ。 javascriptの中で、$( "#portfolio div")を変更していない( "。" + selectedClass).fadeOut()。removeClass( 'scale-anm'); "+ + selectedClass).fadeOut()。removeClass( 'scale-anm');'今はどうですか? –

+0

それは働いた!手伝ってくれてどうもありがとう! – blandz

関連する問題