![](/img/trans.png)
[英]Transition a DIV element while reverting transition on a another element - Using Javascript
[英]Div Transition With Javascript
我是html和javascript的新手。 幾天前,有人為我提供了javascript,它基本上會打開一個隱藏的DIV,而當其他DIV打開時,第一個打開的DIV將自動關閉。 但是現在我遇到了另一個問題,這使我無法產生過渡效果。 我想要在此代碼中進行過渡。 請幫忙!!!
這是JAVASCRIPT:
var divs = ["div1", "div2", "div3", "div4", "div5", "div6", "div7", "div8"];
var visibleDivId = null;
function toggleVisibility(divId) {
if (visibleDivId === divId) {
visibleDivId = null;
} else {
visibleDivId = divId;
}
hideNonVisibleDivs();
}
function hideNonVisibleDivs() {
var i, divId, div;
for (i = 0; i < divs.length; i++) {
divId = divs[i];
div = document.getElementById(divId);
if (visibleDivId === divId) {
div.style.display = "block";
} else {
div.style.display = "none";
}
}
}
HTML如下所示:
<div id="div1" onClick="toggleVisibility('div1');return false;">
<div id="div2" onClick="toggleVisibility('div2');return false;">
等等。
我已經嘗試了所有可能的方法,但是沒有完美的方法來達到這種效果。 我希望將div隱藏起來,當單擊導航時,div應該以其內容打開並帶有過渡。 謝謝 :)
嘗試使用CSS過渡 。 例如,這將使您的div在兩秒鍾內從折疊狀態過渡到打開狀態:
#div1 {
transition: height 2s;
-moz-transition: height 2s; /* Firefox 4 */
-webkit-transition: height 2s; /* Safari and Chrome */
-o-transition: height 2s; /* Opera */
}
我不知道JavaScript,但是默認情況下您會用它來隱藏div,然后在懸停或單擊或您決定執行的任何操作時,使其相對於其各自的狀態顯示/隱藏div。
正如TylerH在評論中指出的,最好的方法是使用CSS過渡:
#mydiv { transition: opacity 2s; }
.hidden { opacity: 0; }
javascript的作用可能只是在您要隱藏的元素上切換類.hidden
:
document.getElementById("mydiv").classList.toggle("hidden");
參見小提琴上的工作示例
您無法通過設置display
屬性來實現它,因為none和block之間沒有過渡。 您可以像在hideNonVisibleDivs()
那樣遍歷所有div,並將其與小提琴代碼放在一起。
您可以使用Jquery動畫
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script> <--- this will add Jquery
$("div").onclick(function(){
$(this.attr("id")).fadeIn(1000); <--- this is the animation
});
或者如果您願意,可以使用動畫功能
https://api.jquery.com/animate/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.