近年來,CSS3已成為前端界非常重要的一門技術,以其強大的特性和不斷增長的瀏覽器支持而受到廣泛歡迎。其中,利用CSS3實現雪花特效是很有趣的一項技術,今天我們就來講講純CSS3實現雪花特效的代碼。
.snowflake { position: absolute; top: -5px; left: -5px; z-index: 100; animation: snow 5s linear infinite; } @keyframes snow { 0% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(30px, 60px, 0); } 100% { transform: translate3d(60px, 120px, 0); } } .snowflake:before, .snowflake:after { content: ""; position: absolute; top: 0; left: 0; width: 20px; height: 20px; transform: rotate(45deg); background: #fff; box-shadow: 0 0 5px rgba(255, 255, 255, 0.7); border-radius: 50%; } .snowflake:after { transform: rotate(-45deg); }
讓我們來簡單解釋一下這段代碼。首先是選擇器.snowflake,它表示雪花的樣式。這個雪花是絕對定位于瀏覽器的左上角,并應用了一個名為snow的動畫,每5秒循環一次。
接著是keyframes,其中定義了動畫過程中雪花偏移的位置。初始值是transform: translate3d(0, 0, 0),表示雪花在x、y、z三個方向上都沒有偏移。到了50%,雪花在x和y方向上分別偏移了30px和60px,最后在100%時在x和y方向上分別偏移了60px和120px。
最后是選擇器.snowflake:before和.snowflake:after,它們定義了雪花的形狀。通過設置transform: rotate(45deg)和transform: rotate(-45deg),它們的內容呈現出8方向的外觀。.snowflake:after通過rotate(-45deg)的效果與前面的雪花抵消了,形成了完整的圖案。
這樣就完成了一只雪花的樣式,如果想創建更多的雪花,只需要在DOM中多生成幾個這樣的元素并應用相應的CSS樣式即可。