大雨滴(Rainyday.js)是一種基于CSS3的JavaScript插件,可以實現雨滴效果。通過使用簡單的CSS代碼,可以為網頁帶來獨特的視覺效果,增加互動性和趣味性。
.rain { position: fixed; top: -50%; left: 0; width: 100%; height: 100%; background: url(../img/rainyday.png) repeat; } .rain:after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url(../img/rainyday-rain.png) repeat; z-index: 2; pointer-events: none; } .rain .rain__layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; } .rain .rain__layer:nth-child(1) { background-image: url(../img/rainyday-big-1.png); animation: raining 0.5s linear infinite; } .rain .rain__layer:nth-child(2) { background-image: url(../img/rainyday-big-2.png); animation: raining 0.3s linear infinite; } .rain .rain__layer:nth-child(3) { background-image: url(../img/rainyday-medium-1.png); animation: raining 0.7s linear infinite; } .rain .rain__layer:nth-child(4) { background-image: url(../img/rainyday-medium-2.png); animation: raining 0.6s linear infinite; } .rain .rain__layer:nth-child(5) { background-image: url(../img/rainyday-small-1.png); animation: raining 0.4s linear infinite; } .rain .rain__layer:nth-child(6) { background-image: url(../img/rainyday-small-2.png); animation: raining 0.2s linear infinite; } @keyframes raining { from { background-position: 0 0; } to { background-position: -200px 200px; } }
在上述代碼中,我們定義了一個class“rain”,并使用“background”屬性引入了兩張背景圖片來模擬雨天的效果。在“:after”偽元素中,我們又引入了一張雨的圖片,并使用“pointer-events”屬性防止圖片影響下面的元素的交互。我們通過定義6層“rain__layer”來實現不同大小、不同速度的雨滴效果,并使用“animation”屬性讓雨滴以勻速、無限循環的方式落下。
可以看到,大雨滴的核心代碼非常簡單,但卻可以為網頁帶來獨特的視覺效果,增強用戶體驗。如果你希望為你的網站增添一份樂趣,大雨滴是一個值得嘗試的選擇。