在現(xiàn)代網(wǎng)頁(yè)設(shè)計(jì)中,轉(zhuǎn)盤抽獎(jiǎng)已經(jīng)成為了一種非常流行的游戲方式。但是這個(gè)游戲的場(chǎng)景中需要使用到 CSS 轉(zhuǎn)盤獎(jiǎng)品的技術(shù)。
.turntable { position: relative; width: 400px; height: 400px; background: url(images/turntable_bg.png) no-repeat center center; background-size: cover; overflow: hidden; } .turntable .box { position: absolute; width: 100%; height: 100%; transform-origin: center center; } .turntable .box:nth-of-type(1) { transform: rotate(0deg); } .turntable .box:nth-of-type(2) { transform: rotate(60deg); } .turntable .box:nth-of-type(3) { transform: rotate(120deg); } .turntable .box:nth-of-type(4) { transform: rotate(180deg); } .turntable .box:nth-of-type(5) { transform: rotate(240deg); } .turntable .box:nth-of-type(6) { transform: rotate(300deg); } .turntable .pointer { position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-style: solid; border-width: 0 10px 20px 10px; border-color: transparent transparent #fff transparent; transform: translate(-50%, -50%) rotate(0deg); transition: all 5s ease-out; } .turntable .pointer.active { transform: translate(-50%, -50%) rotate(720deg); }
在上面的代碼中,我們首先定義了一個(gè)名為 `turntable` 的父級(jí)容器,在這個(gè)容器中包含了六個(gè) div 元素,分別代表了六個(gè)獎(jiǎng)項(xiàng)。這六個(gè) div 元素的樣式使用了 `transform: rotate()` 屬性,這個(gè)屬性可以用來(lái)使這些元素繞著一個(gè)中心旋轉(zhuǎn)。假設(shè)這個(gè)中心在父級(jí)元素的中心位置,那么我們只需要通過(guò)不同的角度來(lái)控制每個(gè)子元素所處的位置,從而形成一個(gè)轉(zhuǎn)盤的效果。
與此同時(shí),我們還需要定義一個(gè)指針元素,在這個(gè)元素的樣式中,我們使用了 `transform: rotate()` 屬性來(lái)控制它的出現(xiàn)和消失。在初始狀態(tài)下,指針是不可見(jiàn)的,而在觸發(fā)抽獎(jiǎng)的操作之后,我們會(huì)使用 JavaScript 來(lái)修改指針的樣式,并使其旋轉(zhuǎn)一定的角度,以此來(lái)模擬一個(gè)轉(zhuǎn)盤的動(dòng)畫效果。