CSS3是一種非常強大的前端技術,可以幫助我們實現(xiàn)許多效果,如今我們要談論的是如何使用CSS3實現(xiàn)拆信效果。
/* 定義信封的樣式 */ .envelope{ position: relative; width: 200px; height: 150px; background-color: #f8f8f8; border: 1px solid #333; margin: 0 auto; overflow: hidden; } /* 定義信封上方的封口 */ .envelope .flap{ position: absolute; top: 0; left: 50%; border-top: 30px solid #f8f8f8; border-right: 100px solid transparent; border-left: 100px solid transparent; transform: translate(-50%); } /* 定義信封內部紙張的樣式 */ .envelope .letter{ position: absolute; top: -200px; left: 0; right: 0; margin: 0 auto; width: 95%; height: 150px; background-color: #f2e6c9; padding: 20px; transition: top 1s cubic-bezier(0.77, 0, 0.175, 1); } /* 當信封被打開時 */ .envelope.open .letter{ top: 15px; }
以上代碼定義了信封的基本樣式,我們使用了相對定位和絕對定位進行布局,并使用了邊框和顏色來模擬出信封的外觀。同時,為了實現(xiàn)拆信的效果,我們還設置了信紙的初始位置和當信封被打開時的位置,并使用了transition屬性使信紙的移動更加平滑。
// 使用JavaScript為信封添加打開事件 document.querySelector(".envelope").addEventListener("click", function(){ this.classList.add("open"); });
最后,我們使用JavaScript為信封添加了一個點擊事件,每次點擊信封都會為其添加open類,觸發(fā)CSS3中定義的動畫效果,從而實現(xiàn)了拆信的效果。