簡而言之,我有三個div
容器與border
。 每個內部都有一個div
,背景色設置爲100%
寬度和高度。 這個想法是,當我點擊它們時,水應該從上到下排空。 我通過將內部div
的高度從100%
切換到0%
來做到這一點。然而,這當然會讓水浮出水面。 所以我一直在尋找下午的大部分時間,並沒有拿出任何東西。 我正在尋找最簡單的方法,只是讓它倒退或翻轉y軸,因爲它的面對它不可能那麼困難,可以嗎?CSS動畫向下而不是向上
無論如何,這是一個代碼筆,因爲jsfiddle希望允許css動畫,我正在試圖做的事情。 https://codepen.io/anon/pen/NgYEKE
function func1(buttonname) {
var x = document.getElementById(buttonname).className;
if (x = "full") {
document.getElementById(buttonname).className = "empty";
} else {
document.getElementById(buttonname).className = "full";
}
}
.full {
height: 100%;
transition:height 2s;
}
.empty {
height: 0%;
transition: height 2s;
}
<body style="background-color:black;">
<div style="display:flex;justify-content:center;align-content:center;">
<div id="glass1" style="height:50px;width:25px;border:2px solid blue;margin: 3px;">
<div id="water1" class="full" style="width:100%;background-color:aqua;"></div>
</div>
<div id="glass2" style="height:50px;width:25px;border:2px solid blue;margin: 3px;">
<div id="water2" class="full" style="width:100%;background-color:aqua;"></div>
</div>
<div id="glass3" style="height:50px;width:25px;border:2px solid blue;margin: 3px;">
<div id="water3" class="full" style="width:100%;background-color:aqua;"></div>
</div>
</div>
<div style="display:flex;justify-content:center;align-content:center;">
<button id="button1" onclick="func1(this.innerHTML)">water1</button>
<button id="button2" onclick="func1(this.innerHTML)">water2</button>
<button id="button3" onclick="func1(this.innerHTML)">water3</button>
</div>
</body>
在一個側面說明我也相信我已經正確地寫入了Javascript將空和滿類之間進行切換,但似乎只是工作的一種方式,如果你有任何想法我做錯了,這也會有所幫助。
這是最全面的答案,動畫也是更強大的選項。唯一的缺點是它需要知道容器的高度。那些尋找容器高度未知的替代方案的人應該看看Aziz的文章中概述的ScaleY選項。但請注意,在轉換完成之前,scaleY解決方案存在切換類的問題。 –
@SimonGreen在你的評論之後,我再次編輯了我的代碼片段:代替頂部的px值(空的時候),你可以使用'top:100%',所以實際上你*不必*知道容器的高度。 – Johannes