CSS中卡片層疊切換效果是一種非常流行的交互效果。通過定義多個卡片元素,使用CSS的變換、過渡等屬性,可以輕松實現層疊切換效果。下面我們就來看看如何實現這種效果。
.card { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: all .3s ease-in-out; } .card.active { opacity: 1; }
首先,我們定義了卡片元素的基礎樣式。其中,我們使用了絕對定位,將卡片元素放置在頁面正中央,并設置了寬高為100%。然后,我們使用opacity屬性設置了元素的不透明度為0,使得元素默認不可見。最后,我們使用了CSS的過渡屬性,將元素的所有屬性(包括opacity)做了一個平滑的動畫過渡,動畫時間為0.3s。
接下來,為了實現層疊切換效果,我們需要使用JavaScript來控制卡片元素的狀態。具體來說,我們可以使用一個當前活躍卡片的索引值來控制哪個卡片應該處于激活狀態。
let currentCard = 0; const cards = document.querySelectorAll('.card'); function setActiveCard(index) { for(let i = 0; i< cards.length; i++) { if(i === index) { cards[i].classList.add('active'); } else { cards[i].classList.remove('active'); } } } // 點擊切換按鈕 document.querySelector('.switch-btn') .addEventListener('click', () =>{ currentCard = (currentCard + 1) % cards.length; setActiveCard(currentCard); });
在JavaScript中,我們首先獲取到了所有的卡片元素。然后,定義了一個setActiveCard方法,它接受一個索引值,將所有卡片元素的active類名設置為當前激活的卡片元素為active,其他卡片元素則為inactive。最后,我們為切換按鈕添加了一個點擊事件監聽器,每次點擊切換按鈕就更新當前卡片的索引值,并調用setActiveCard方法更新卡片狀態。
到此為止,我們就完成了卡片層疊切換效果的實現。通過CSS的過渡和變換屬性,以及JavaScript的控制操作,我們可以實現各種炫酷的層疊切換效果,為用戶提供更加豐富的交互體驗。
上一篇css 去掉按鈕的邊框
下一篇vue插槽原理講解