在CSS中,我們可以通過渲染一系列的盒子來制作出火山噴發(fā)的效果。首先,我們需要為爆炸前的火山口創(chuàng)建一個具有一定高度和寬度的方形盒子。
.volcano { position: relative; width: 100px; height: 120px; border: 10px solid brown; border-top: 0; border-radius: 50%; background-image: linear-gradient(to bottom, red, orange); }
接下來,我們將創(chuàng)建一個代表熔巖噴射路徑的半透明的圓形盒子。我們將這個圓形盒子放在火山口的正中央,并使用CSS中的animation
屬性為其創(chuàng)建動畫效果。
.lava { position: absolute; top: 60px; // 熔巖線在火山口中央 width: 40px; height: 40px; border-radius: 50%; background-color: orange; opacity: .7; animation: eruption 2s infinite; // 作用于下面的keyframes } @keyframes eruption { 0% { transform: translate(0, 0); } 50% { transform: translate(-15px, -40px);} 100% { transform: translate(15px, -30px); } }
最后,我們將在熔巖噴射路徑上添加一些小的圓形粒子,以模擬火山噴發(fā)的場景。我們可以將這些小圓形的位置隨機地放置在噴射路徑上,然后通過CSS動畫讓它們向上爆炸。
.lava:before { content: ''; position: absolute; top: -5px; left: -5px; width: 10px; height: 10px; border-radius: 50%; background-color: yellow; } .lava:after { content: ''; position: absolute; top: -5px; right: -5px; width: 10px; height: 10px; border-radius: 50%; background-color: yellow; } .lava span { position: absolute; top: 0; left: 0; width: 10px; height: 10px; border-radius: 50%; background-color: white; animation: explosion 1s infinite; } @keyframes explosion { 0% { transform: scale(0); } 50% { transform: scale(3); opacity: 1; } 100% { transform: scale(5); opacity: 0; } }
最終,我們可以將所有的盒子組合在一起,來制作一個栩栩如生的火山噴發(fā)效果!