2017-04-06 32 views
0

我在項目中單擊按鈕時添加隱藏類並刪除隱藏類。非常簡單。但是,不是簡單地隱藏元素並顯示它們,而是有辦法讓它們快速展開和彙總?我不是一個偉大的前端傢伙YET,這裏是我的javascript:在隱藏元素並顯示它們時添加細微動畫-CSS -JS

JS

$(document).on("click", _this.sel.close, function(event) { 
    $(".update-billing").addClass("hidden"); 
    $(".billing-stats").removeClass("hidden"); 
    $(".current-cc").removeClass("hidden"); 
    event.preventDefault(); 
}); 

什麼是學習動畫的一些好的資源?

+0

你的意思是你的jQuery。這不是Javascript。無論如何,你想要的是類似手風琴的東西,這些東西實際上可以靜態實現。 [Codepen]上的示例(https://codepen.io/abergin/pen/ihlDf?editors=1100#0)。 – abluejelly

+0

是不是jQuery也JS?也感謝您的幫助! – Bitwise

+0

jQuery是一個建立在JavaScript上的庫,但它不是JavaScript,因爲slideUp()或slideToggle()(jQuery中的自定義擴展)不是JavaScript的基礎。要了解jQuery效果,請查看https://jqueryui.com/effect/但另一個需要考慮的選項是CSS動畫,如https://www.w3schools.com/css/css3_animations.asp – Snowmonkey

回答

0

CSS解決方案

$(document).on("click", 'span', function(event) { 
 
    $(".slider").toggleClass("hidden"); 
 
    event.preventDefault(); 
 
});
.slider { 
 
    height: 200px; 
 
    max-height: 500px; 
 
    background-color: red; 
 
    transition-property: all; 
 
    transition-duration: .5s; 
 
    transition-timing-function: cubic-bezier(0, 1, 0.5, 1); 
 
} 
 

 
.hidden { 
 
    overflow-y: hidden; 
 
    max-height: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="slider"> 
 
    Content 
 
</div> 
 
<span>Click me</span>

缺點:你必須與申報單的固定高度的工作,可能不是每次你需要瀏覽器的支持:compatibility

JS Solution

$(document).on("click", 'span', function(event) { 
 
    $(".slider").slideToggle(); 
 
    event.preventDefault(); 
 
});
.slider { 
 
    height: 200px; 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="slider"> 
 
    Content 
 
</div> 
 
<span>Click me</span>

參考

css transitions

.slideToggle()

+0

作爲固定高度的註釋,如果您使用'max-height'設置動畫,併爲頂部和底部的'padding'設置動畫,則可以誘使用戶的眼睛順利進行動畫並避免完全固定的高度。 – abluejelly