[英]How can I use translateY to successive display elements one a time?
最終,對於每次單擊按鈕,我想顯示一個包含新內容的元素。 換句話說...
我不清楚如何實現這一點,以及是否可以使用CSS
Animation。 根據我發布的內容,它只需要兩個元素並立即將它們沿垂直軸平移。 如何重構它,以便一個元素暫停並僅使用vanilla JavaScript
顯示其內容?
var div1 = document.querySelector(".first"); var div2 = document.querySelector(".second"); var button = document.querySelector("button"); var divs = [div1, div2]; button.addEventListener("click", function(event) { event.preventDefault(); for (var i = divs.length - 1; i > -1; i--) { var div = divs[i]; div.classList.remove("down_shift"); void div.offsetWidth; div.classList.add("down_shift"); } });
body { background: #222; } section { width: 50vw; height: 300px; border: 5px solid red; margin: 50px auto; overflow: hidden; }.first, .second { width: inherit; height: 300px; background: red; transform: translateY(-300px); }.second { background: pink; } h1 { margin: 0; padding-top: 50px; text-align: center; }.down_shift { animation: down 1s ease-out; } @keyframes down{ from { transform: translateY(0); } to { transform: translateY(300px); } }
<section> <div class="first"><h1>1</h1></div> <div class="second"><h1>2</h1></div> </section> <button type="button">Click</button>
您可以為元素添加包裝器,並為包裝器設置動畫
var wrapper = document.querySelector(".wrapper"); var button = document.querySelector("button"); button.addEventListener("click", function(event) { event.preventDefault(); wrapper.style.transform = 'translateY(-300px)' });
body { background: #222; } section { width: 50vw; height: 300px; border: 5px solid red; margin: 50px auto; overflow: hidden; }.first, .second { width: inherit; height: 300px; background: red; /* transform: translateY(-300px); */ }.second { background: pink; }.wrapper { transition: all 1s ease-out; } h1 { margin: 0; padding-top: 50px; text-align: center; }.down_shift { animation: down 1s ease-out; } @keyframes down{ from { transform: translateY(0); } to { transform: translateY(300px); } }
<section> <div class="wrapper"> <div class="first"><h1>1</h1></div> <div class="second"><h1>2</h1></div> </div> </section> <button type="button">Click</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.