旋轉(zhuǎn)風(fēng)車是一種經(jīng)典的css3動(dòng)畫(huà)效果,可以為網(wǎng)頁(yè)帶來(lái)獨(dú)特的視覺(jué)效果。下面我們來(lái)介紹一下如何實(shí)現(xiàn)一個(gè)旋轉(zhuǎn)風(fēng)車的效果。
首先,我們需要使用HTML創(chuàng)建一個(gè)div容器,用來(lái)容納風(fēng)車的所有部分:
<div class="windmill-container"> <div class="windmill-blade"></div> <div class="windmill-blade"></div> <div class="windmill-blade"></div> <div class="windmill-blade"></div> </div>
上述代碼中,我們創(chuàng)建了一個(gè)class為“windmill-container”的div容器,包含了四個(gè)class為“windmill-blade”的div元素。接下來(lái),我們使用CSS對(duì)這些元素進(jìn)行樣式設(shè)置。
.windmill-container { width: 200px; height: 200px; position: relative; } .windmill-blade { width: 50%; height: 50%; position: absolute; top: 25%; left: 25%; background-color: #3d3d3d; transform-origin: 50% 50%; animation-name: rotate; animation-duration: 2s; animation-iteration-count: infinite; animation-timing-function: ease-in-out; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .windmill-blade:nth-child(1) { transform: rotate(0deg); animation-delay: -0.3s; } .windmill-blade:nth-child(2) { transform: rotate(90deg); animation-delay: -0.2s; } .windmill-blade:nth-child(3) { transform: rotate(180deg); animation-delay: -0.1s; } .windmill-blade:nth-child(4) { transform: rotate(270deg); }
在上述CSS代碼中,我們?cè)O(shè)置了容器的寬度和高度,并將其設(shè)置為相對(duì)定位。對(duì)于每個(gè)風(fēng)車葉片,我們?cè)O(shè)置了其寬度、高度、相對(duì)定位,并使用了CSS3的transform-origin屬性將其旋轉(zhuǎn)中心設(shè)置為元素的正中心。我們還為每個(gè)風(fēng)車葉片設(shè)置了旋轉(zhuǎn)動(dòng)畫(huà),通過(guò)animation-name、animation-duration、animation-iteration-count和animation-timing-function屬性來(lái)控制動(dòng)畫(huà)參數(shù)。最后,我們使用nth-child偽類為每個(gè)風(fēng)車葉片指定了不同的初始旋轉(zhuǎn)角度和延遲時(shí)間,從而實(shí)現(xiàn)了旋轉(zhuǎn)風(fēng)車的效果。