利用toggleClass搭配CSS做效果優化網站效能!
jQuery雖然本來就可以直接用fadeToggle、slideToggle等.. 做效果,但是這樣的形式沒辦法讓網頁效能保持得很好,這時候就可以試試看用jQuery的toggleClass搭配CSS做一些效果吧!
toggleClass 開關效果
toggleClass是可以在class裡面增加、刪除一個class,如果裡面有這個class就會刪除,反之增加。
Html、CSS 程式碼範例:
1 | <input type="button" value="開關" class="btn"> |
CSS如下
1 | .btn{ |
在上方這段程式碼我有一個開關的按鈕,還有一個.text的區塊,假如一開始我預設.text是 display: none 的狀態下,要如何利用jQuery搭配CSS來開啟他呢?
那就可以利用jQuery的toggleClass功能。
(如下)
1 | $(document).ready(function () { |
這段程式碼意思是按下btn的時候會執行toggleClass的動作,所以利用CSS選擇器的權重在.text裡面再新增一個.active的class就會把本來display:none變成display:block,這樣就能夠達到開關的效果了!
淡進淡出
淡進淡出是 toggleClass 開關效果的延伸利用,但是用CSS淡進淡出卻沒辦法讓區塊消失。
所以會把display:none/block刪除,因為把display留著沒辦法做出transition的動畫效果,之後新增opacity屬性,再利用transition動畫化!
只有CSS有差異。如下
1 | .btn{ |
slide效果
slide效果是把整個區塊的height調整到0,然後利用overflow:hidden把區塊裡面的內容都隱藏起來,接著利用toggleClass把.active加入到.text裡面,讓整個區塊的高度回復,接著利用transition讓整個流程動畫化。
只有CSS有差異。如下
1 | .btn{ |