短く私はborder
の3つのdiv
のコンテナを持っています。 それぞれの内部にはdiv
があり、背景色は100%
の幅と高さに設定されています。 アイデアは、それらをクリックすると、水が上から下に空になることです。 私はの内部の高さを100%
から0%
へと切り替えることでこれを行います。 もちろん、これは水を浮上させるだけです。 私は午後のほとんどを探していて、何も出てこなかった。 私はちょうどそれを逆にしたり、y軸を元に戻したりする最も簡単な方法を探しています。それは難しいことではありません。CSSのアニメーション化の代わりに
とにかく、私は何をしようとしているのか、jsfiddleがCSSアニメーションを許可したいので、ここにコードペンがあります。私はまた私が正しくJavascriptが空と完全なクラスを切り替えることが書かれていると信じていますが、任意のアイデアを持っている場合にのみ、1人のように動作するように思わサイドノートで
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>
これは最も包括的な答えであり、アニメーションもより堅牢なオプションです。唯一の欠点は、コンテナの高さを知る必要があることです。コンテナの高さが分からない場合の代替案を探している人は、Azizの投稿に記載されているScaleYオプションを調べるべきです。ただし、scaleYソリューションでは、移行が完了する前にクラスを切り替えることに問題があることに注意してください。 –
@SimonGreenあなたのコメントの後、もう一度私のスニペットを編集しました: 'top'のpx値(空の時)の代わりに' top:100% 'を使うこともできます。コンテナの高さを知る。 – Johannes