CSS3拆紅包是一種基于CSS3技術實現的抽獎效果,通過CSS3的偽元素和動畫特性,實現了模擬紅包拆開的動畫效果。
/*樣式代碼*/ .box{ position:relative; width: 150px; height: 150px; margin: auto; background-color: #f7b400; border-radius: 50%; overflow: hidden; cursor: pointer; } .box:before, .box:after{ content:""; position: absolute; width: 80px; height: 80px; border-radius: 50%; background-color: white; top:-80px; bottom:0; margin: auto; transition: all .3s ease-in-out; } .box:after{ top:0; bottom:-80px; } .box:hover:before{ top:0; bottom: -80px; } .box:hover:after{ bottom:0; top:-80px; }
首先定義一個.box容器,通過border-radius屬性將其變成一個圓形。因為拆紅包的過程需要隱藏red包里的東西,所以設置了overflow屬性來裁剪內容。同時,設定了cursor為pointer,讓光標變為手型,使得用戶有點擊的提示。
接著利用偽元素:before和:after,創建兩個圓形,通過設置top、bottom、left、right以及margin:auto使其居中。默認情況下,這兩個圓形會疊在一起,并且未設置背景顏色,看不到它們的存在。
當鼠標放到.box上時,利用:hover偽類,改變偽元素的top和bottom的值,實現圓形逐漸升起和下落的動畫效果,從而實現拆紅包的視覺效果。
最后,將這個.box嵌入到HTML頁面,即可實現一個基于CSS3技術的拆紅包效果。
下一篇css3按鈕切換動畫