CSS3 單選框動畫特效

發表於2016-09-19

Action one

首先,來看一下我們的第一個特效

CSS3 單選框動畫特效

注意,這個地方的黃點不是我們特效的一部分,這個黃點之所以存在是我使用的螢幕錄製軟體自帶的。可以很清楚的看到這個特效就是當我們點選的時候,黑點會以一種縮放的動畫顯示出來,下面來看看具體如何實現。

這裡,我們指定 input 標籤的 type 值為 radio,並且一下所有的 radio 的 name 值都相同,這樣才可以實現單選效果。對於這裡的 label 中的 for 屬性,為什麼這麼設定一開始我也不明白,後來搜尋了一下這個屬性的定義,反正大概的意思就是說,只要設定了這個屬性,當我們點選label 元素的時候,瀏覽器會自動把焦點轉移到 radio 上去。下面用 CSS 對HTML設定效果。

這裡我們首先看一下對 label 元素的設定,其中大部分屬性我都在以前的文章中介紹過了,唯一一個陌生的屬性就是 cursor,這個屬性是設定滑鼠樣式的,設定成 pointer 之後,當我們的滑鼠放到 label 元素上時,滑鼠樣式就變成了一隻手(在我電腦上是這樣)。好了,下面繼續來看

這裡我們用到了 after 選擇器,為什麼設定這個屬性?就是為了設定如上圖所示的小黑點。首先我們設定 content 屬性為空,意思就是我們不需要填充任何內容,因為我們只是想設定背景色為黑色,僅此而已。還有,剛開始的時候我們設定 transform 的 scale 值為 0 ,其達到的效果就是將小黑點隱藏。

注意這裡使用了 + 符號,是什麼意思呢?它的學名叫做 相鄰同胞選擇器,意思就是選擇緊接在另一個元素後的元素,而且二者有相同的父元素,在這裡的意思就是選中在radio 後出現的 label ,有人要問了,這麼設定幹嘛,直接設定 label 就是了。想象一下,在一個 非常龐大的系統中,我們可能多次使用到 label 元素,為了避免混淆,這樣設定將更加準確。這裡我們看到了 transition 屬性,這個屬性是用於設定過渡效果的。最後,將我們的 radio 隱藏掉,就大功告成了。

Action two

這是我們的第二個特效

CSS3 單選框動畫特效

其實看到這個動畫的第一感覺就是,和上一個一模一樣,除了將 transform 屬性設定成 rotate,下面我就不再解釋了,只要你結合上一個例子,就可以很容易做出這麼一個效果,我們直接上程式碼

 

相關文章