2017-04-12 9 views
0

私はソートしようとしているポートフォリオを持っています。ナビゲーション内のリンクの1つをクリックすると、割り当てられたIDに基づいて画像がソートされます。私は、JQuery関数が動作しているが、アニメーション化されません。また、イメージを保持するコンテナもアニメーション化されません。すべてのCSSアニメーションがオフになっているようです...私はブートストラップも使用しています。CSSがJqueryでアニメーション化されないクラスを追加/削除します

私はこれを楽しく構築しようとしていましたが、CSSを使ってアニメーションを作成していませんでした。私は年齢のためにこれに主演した、それはおそらくシンプルですが、私はそれを見ていないです。

CSS:

.category-item{ 
display: block; 
-webkit-transition: all 0.5s ease; 
-moz-transition: all 0.5s ease; 
-o-transition: all 0.5s ease; 
} 
.hide{ 
display: none; 
-webkit-transition: all 0.5s ease; 
-moz-transition: all 0.5s ease; 
-o-transition: all 0.5s ease; 
} 

のjQuery:

$(document).ready(function(){ 
// Portfolio Sort 
$(".categorys").click(function(){ 
    var category = $(this).attr('id'); 
    //alert(category); //test nav 
    if (category == "featured") { 
     $(".category-item").addClass("hide"); 
     setTimeout(function(){ 
     $(".category-item").removeClass("hide"); 
    }, 300); 
    } 
}) 
}); 

ここでは、デモJSFiddle です(画像はありませんが、基本的にそれは消えと戻ってくるアニメーション化する必要があります。)

答えて

1

display: noneは一部ではありませんアニメーション可能なリストの代わりにopacity: 0を使用してください。

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties

+0

が、これはそこにちょうど見えない列を保持していないだろうことができます。それはまだスペースを取るだろうか? – Jiroscopes

+0

jqueryを使用している場合は、 'hide()'関数を使用することもできます。 –

0

CSSアニメーションで

を動作していないディスプレイshowと表示noneは、CSS、 "表示" プロパティがwoのではない

$(document).ready(function(){ 
 
    // Portfolio Sort 
 
    $(".categorys").click(function(){ 
 
     var category = $(this).attr('id'); 
 
     //alert(category); //test nav 
 
     if (category == "featured") { 
 
      $(".category-item").addClass("hide"); 
 
      setTimeout(function(){ 
 
      $(".category-item").removeClass("hide"); 
 
     }, 300); 
 
     } 
 
    }) 
 
});
/*Portfolio Start*/ 
 
.portfolio{ 
 
\t height: 1000px; 
 
    transition: all 1s ease; 
 
} 
 
.portfolio-head{ 
 
\t font-family: 'Lato', sans-serif; 
 
\t font-size: 2.5em; 
 
\t font-style: italic; 
 
\t text-align: center; 
 
} 
 
.portfolio-nav-holder{ 
 
\t width: 600px; 
 
\t height: 20px; 
 
\t margin: 0 auto; 
 
} 
 
.portfolio-nav{ 
 
\t color: black; 
 
\t list-style: none; 
 
\t text-align: center; 
 
\t width: 450px; 
 
\t height: 100%; 
 
\t margin: 0 auto; 
 
} 
 
.portfolio-nav a{ 
 
\t text-decoration: none; 
 
\t float: left; 
 
\t margin-right: 15px; 
 
\t color: black; 
 
} 
 
.portfolio-nav a:hover{ 
 
\t color: #f7c845; 
 
\t transition: all 0.2s ease; 
 
} 
 
.portfolio-row{ 
 
\t padding-top: 80px; 
 
} 
 
.portfolio-img{ 
 
\t position: relative; 
 
} 
 
.portfolio-img > img{ 
 
\t width: 100%; 
 
\t height: 100%; 
 
    background-color:red; 
 
} 
 
.portfolio-overlay{ 
 
\t background-color: #f7c845; 
 
\t z-index: 100; 
 
\t position: absolute; 
 
\t height: 100%; 
 
\t width: 100%; 
 
\t display: none; 
 
} 
 
.portfolio-overlay > h3 { 
 
\t text-align: center; 
 
\t color: #212121; 
 
\t font-size: 2em; 
 
\t font-weight: 700; 
 
\t padding-top: 80px; 
 
} 
 
.portfolio-overlay > p { 
 
\t text-align: center; 
 
\t color: #212121; 
 
\t padding: 20px 40px; 
 
} 
 
.portfolio-row-2{ 
 
\t padding-top: 20px; 
 
} 
 
.container{ 
 
\t transition: all 2s ease !important; 
 
     -webkit-transition: all 0.5s ease; 
 
    -moz-transition: all 0.5s ease; 
 
    -o-transition: all 0.5s ease; 
 
} 
 
.category-item{ 
 
opacity:1; 
 
\t  -webkit-transition: all 0.5s ease; 
 
    -moz-transition: all 0.5s ease; 
 
    -o-transition: all 0.5s ease; 
 
} 
 
.hide{ 
 
\t opacity: 0; 
 
\t  -webkit-transition: all 0.5s ease; 
 
    -moz-transition: all 0.5s ease; 
 
    -o-transition: all 0.5s ease; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
     <div class="container"> 
 
     <div class="row"> 
 
      <div class="col-md-12"> 
 
      <h2 class="portfolio-head">PORTFOLIO</h2> 
 
      <div class="portfolio-nav-holder"> 
 
       <ul class="portfolio-nav"> 
 
       <li><a class="categorys" id="featured">Featured</a></li> 
 
       </ul> 
 
      </div> 
 
      </div> 
 
     </div> 
 
     <div class="row portfolio-row"> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item"> 
 
      <div class="portfolio-img"> 
 
       <div class="portfolio-overlay"> 
 
        <h3>Project #1</h3> 
 
        <p>This is the home of my first project. I made this thing.</p> 
 
       </div> 
 
       <img src="assets/images/port_1.jpg" alt="portfolio-image"> 
 
      </div> 
 
      </div> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item featured"> 
 
      <div class="portfolio-img"> 
 
       <div class="portfolio-overlay"> 
 
        <h3>Project #2</h3> 
 
        <p>This is the home of my first project. I made this thing.</p> 
 
       </div> 
 
       <img src="assets/images/port_2.jpg" alt="portfolio-image"> 
 
      </div> 
 
      </div> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item featured"> 
 
       <div class="portfolio-img"> 
 
        <div class="portfolio-overlay"> 
 
        <h3>Project #3</h3> 
 
        <p>This is the home of my first project. I made this thing.</p> 
 
        </div> 
 
       <img src="assets/images/port_3.jpg" alt="portfolio-image"> 
 
       </div> 
 
      </div> 
 
      </div> 
 
      <div class="row portfolio-row-2"> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item featured"> 
 
       <div class="portfolio-img"> 
 
        <div class="portfolio-overlay"> 
 
        <h3>Project #4</h3> 
 
        <p>This is the home of my first project. I made this thing.</p> 
 
        </div> 
 
       <img src="assets/images/port_4.jpg" alt="portfolio-image"> 
 
       </div> 
 
      </div> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item featured"> 
 
       <div class="portfolio-img"> 
 
        <div class="portfolio-overlay"> 
 
        <h3>Project #5</h3> 
 
        <p>This is the home of my first project. I made this thing.</p> 
 
        </div> 
 
        <img src="assets/images/port_5.jpg" alt="portfolio-image"> 
 
       </div> 
 
      </div> 
 
      <div class="col-md-4 col-sm-4 col-xs-4 category-item featured"> 
 
       <div class="portfolio-img"> 
 
        <div class="portfolio-overlay"> 
 
         <h3>Project #6</h3> 
 
         <p>This is the home of my first project. I made this thing.</p> 
 
        </div> 
 
        <img src="assets/images/port_6.jpg" alt="portfolio-image"> 
 
       </div> 
 
      </div> 
 
      </div> 
 
     </div>

+0

ブロックはまだ表示されていなくてもスペースを占有します。彼らを去らせ、列やすべてを消してから再び現われるような方法はありますか? – Jiroscopes

+0

put height:0クラスを追加すると.hide .hide {height:0;不透明度:0; } –

0

このコードを試してみてくださいアニメーションのrks。 CSSの遷移がここに表示プロパティでは動作しませんので、したがって、このCSSコードは

.category-item{ 
 
    opacity: 1; 
 
    visibility: visible; 
 
    max-height: 100%; 
 
    display: block; 
 
    overflow: hidden; 
 

 
    -webkit-transition: all 0.5s ease; 
 
    -moz-transition: all 0.5s ease; 
 
    -o-transition: all 0.5s ease; 
 
} 
 
.hide{ 
 
    opacity: 0; 
 
    max-height: 0; 
 
    visibility: hidden; 
 
}

0

、してみてくださいあなたのためのことを行うことができ、純粋なjQueryのソリューションです。

あなたのCSSからトランジションを削除して、このような機能を変更してください。

$(document).ready(function(){ 
    // Portfolio Sort 
    $(".categorys").click(function(){ 
     var category = $(this).attr('id'); 
     //alert(category); //test nav 
     if (category == "featured") { 
      $(".category-item").hide(500); 
      setTimeout(function(){ 
      $(".category-item").show(500); 
     }, 3000); 
     } 
    }) 
}); 

必要に応じて、タイムアウトと表示非表示の遅延を変更することができます。

ここは実用的なフィドルです。 https://jsfiddle.net/nhdo3opo/5/

希望これは


関連する問題