搜尋
首頁web前端css教學如何利用CSS技術實現下拉框酷炫的特效

這篇文章給大家介紹的是一個利用CSS實現的酷炫的下拉框,實現後效果真的非常不錯,文中給出了詳細實現過程和示例代碼,感興趣的朋友們下面來一起看看吧。

首先來看看要實現的效果圖

#想要製作這麼一個效果還是比較麻煩的,但是程式碼並不難理解。

首先,來看看 Html 程式碼。


XML/HTML Code#複製內容到剪貼簿

  1. ##p class="container"#>

  2.     

    p class="heading"#>

  3.         #h2>

    Custom Select
  4. #
  5. ##h2

    > ;
  6.     p>

  7.     p class=

    "select"
  8. >

            

    p
  9. >

    Please select<lt//; p>        ##ul#>

  10.             li data-value ##>HTML5li#>

                
  11. ###;

    #li data-value="CSS3">CSS3#li >

                
  12. li data-value#li data-value #"JavaScript">JavaScript#li
  13. >
  14.             li data-value=#"JQuery"

  15. >##data-value
  16. =

    #"JQuery">#li

    >
  17. #                 

    #
  18.      #     #

    ### -value###=###"Backbone"######>###Backbone#########li######>##### ##########        #########ul######>##############    ###################    ####################  ;/######p######>########################p###########################p##### #>#######

可見,我們並沒有利用原生的 select 元素,而是利用其它元素來模擬這個效果。我們為 li 元素指定了 data-value,主要是接下來我們會用 JQuery 取得選取值並將其放置到 p 元素下。

以下逐步來看 CSS 程式碼。


CSS Code#複製內容到剪貼簿

  1. ##* {   

  2.     

    margin: 0;   

  3.     

    #padding##: #    

  4.  
  5. #}   

  6.   

  7. html {   

  8. #    #font -family'Terminal';   

  9.     font-size: 62.5%;   

  10. }   

  11.   

  12. body {   

  13.     background-colorcolor##    

    #: 
  14. #33CC66
  15. ;   

}  

##1、網頁中所有元素的外邊距與內邊距設定為0。

2、將網頁中的預設字體設定為 Terminal,字體大小設定為 62.5%, 也就是 10px。

3、設定背景顏色為 #33CC66。

XML/HTML Code

#複製內容到剪貼簿
  1. link

     
  2. href
=

'http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis'

 

rel

=

'stylesheet'

 

type

=

'text/css'

>

上面我們用到了Terminal 字體,而且接下來我們還會使用Lobster 字體,所以用這行程式碼加入引用。

    1、指定 headng, select 寬度並指定其水平居中。
  1. 2、修改 heading 的寬度,主要是為了讓其寬度大於 select 的寬度,顯得更美觀。然後指定其上外邊距和下外邊距。

  2. 3、設定 heading 下 h2 元素的字體和字體大小,顏色。
  3. CSS Code

  4. 複製內容到剪貼簿
  5. .select > p, .select ul {   
  6.         background-color#fffffff##;   #: 

    #ffffff
  7. ;   
  8. ##of ##font-size: 2rem;   

  9. #        
  10. border

    #: 1px 

    solque; # bisque; # bisque;
  11.         

    border
  12. -radius: 
  13. 5px

    ;   

  14.        

  15.      ;       }   

  16.   

  17. .select > p { 
  18. #.select >         text-align

    #: 
  19. left
  20. ;   

            ##1       

  21. ##1

    ##        position#: relative

    ;   
  22.        right-radius: 0;   

    #########        ###border-bottom###-####left###-radius: #0;   # ###########        ###cursor###: ###pointer###;   ####
  23.         color#: rgba(102, 102, 102, .6);   

  24.   
  25. #.select > p:after {   

  26.         

    #display

  27. ##; 

    display#; ##        

    width
  28. 10px

    ;           

  29. ##        
  30. content

    #: '';   

  31.         
  32. #       ##;   

            
  33. top
  34. : 1.4rem;   

    1#   : 2rem;

  35.         border-left

    1px
  36.  
  37. #solid

     ##33CC66##        transform: rotate(-45deg);   

  38.         trans

    ##    }  #1、設定p 和ul 元素的背景色彩和邊框等設定。 2、為 p 元素單獨指定樣式,並設定其 position 屬性,主要是為了在下面繪製右側的下拉按鈕。

  39. 3、利用 :after 在p 元素的右邊繪製下拉按鈕,可以看出來,我們是利用左下邊框然後旋轉 -45 度 模擬的這個效果。值得注意的是,我們需要將其  display 設為 block,並且設定寬高,否則看不到 這個效果。
  40. CSS Code複製內容到剪貼簿

  41. .select ul {

  42.     

    margin-top: 0;   

  43.     

    border-top

    -
##    

border-top

-

#left

-radius: 0;   


    

border-top

-#right-radius: 0;   

  1. #    

    list-style-type
  2. none

    ;   

  3.     
  4. cursor

    # # : pointer;   

  5.     
  6. overflow

    -y: auto;   

  7. 總是

    ##做什麼#    

    max-height
  8. : 0;   
  9.     transition: 
  10. #max-height

     .3s ease-out;

    #}   
  11.   
  12. .select ul li {   

  13. #    -left

    : 0.5rem;   #    

    display
  14. block

    ;    ##line-height

    : 3rem;   
  15. #    text-alignleft

    ;   

################################################################################################################################################11_##le ###}  ############1、設定ul 的一些預設屬性,並將其設定最大寬度為0,指定overflow-y 為auto ,這個時候ul 將會被隱藏。 ######2、在這裡設定的時候我遇到了一個問題,就是li 標籤始終佔不滿ul 的一行,那是因為其預設有margin 和padding ,所以在一開始的時候就將網頁中所有元素的外邊距和內邊距設定成了0。 ###


CSS Code#複製內容到剪貼簿

  1. .select.open ul {   

  2.     max-height: 20rem;   

  3.     transform-origin: 50% 0;   

  4.     -webkit-animation: slide-down .5s ease-in;   
  5. }   
  6.  
  7. .select.open > p:after {   

  8.     position#: absolute;   

  9. #: 

    absolute;   

  10. 1112

  11.     
top

: 1.6rem;   

    transform: rotate(-225deg);   


很難#很難#很難# : transform .3s ease-in, 

#top
     .2s ease-in;   
  1. }  
  2. 1、為open設定最大高度,並為其指定動畫效果。
  3. 2、將下拉按鈕旋轉 -225 度,並為其指定動畫。

  4. 下面我們來看看為 ul 元素指定的 slide-down 動畫效果,這也是這個下拉效果的關鍵。
  5. CSS Code

  6. 複製內容到剪貼簿
  7. @-webkit- keyframes slide-down {   

  8.     0% {   

  9. #     

        }   
  10.     25% {   
  11. #        trans
  12.         trans

  13. 1. ##    }   

  14.     50% {   

  15. #        #    }   

  16.     75% {   

  17.         }   

    100% {   

#        transform: )


}  看到上述程式碼可能就都明白了,就是不斷改變ul 的大小,讓其在0.75-1.25 之間進行縮放,所以就會有那個跳動的效果了。

    下面還有一些簡單的 CSS 程式碼,不再解釋。
  1. CSS Code複製內容到剪貼簿

  2. .select ul li :hover {   
  3.     
  4. background-color
  5. : rgba(102, 153, 102, 0.4);   

  6. }   

      
  7. .select .selected {   

    

#background-color

##: rgba(102, 153, 102, 0.8);   


}  CSS 完成了,以下就可以看看我們如何利用JQuery控制這個效果的。

    我們不需要下載 JQuery 就可以使用,因為現在已經有許多網站提供了  CDN 服務,像是我使用的 BootCDN。
  1. XML/HTML Code#複製內容到剪貼簿


script src

=###"http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"### ###>############script######>###############下面就可以使用JQuery 了。 ##################XML/HTML Code#######複製內容到剪貼簿######
  1. 腳本>  

  2.     $(文檔).ready (function () {   

  3.         $('.select ul li').on("click", function (e) {   

  4. var _this = $(this);   

  5.            att $('.select #>p').text(_this.attr('資料值' )); $('.select').toggleClass('open');   

  6.            cancelBubble(e);    ##o

    ## 
  7.   

  8.         $('.select

    >
  9. p').on("點選", 函數( e) {   ##p').on("點選", 函數( e) {   
  10. #            $('.select').toggleClass('open');   
  11.    
  12. #        });   

      
  13.         
  14. ##            $('.select').removeClass('open');   

  15.     )   

  16.   

  17.     函數cancelBubble(事件) {   

  18. ##  
  19.             event.preventDefault();   
  20.             event.stopPropagation();   
  21.         } else {   
  22.               
  23.             event.cancelBubble();   
  24.         }   
  25.     }   
  26. #

    script
  27. >

    #  1、先為p標籤綁定點擊事件,在觸發的時候,為選擇新增或刪除開放類,也

  28. 2、為li綁定點擊事件,選出中了一個li元素的時候,首先獲取到data-value,然後將其賦值給p標籤,然後為選中的li添加selected class,同時利用siblings()方法,讓兄弟節點的selected class移除。不過這時候因為所有元素都在文件內,所以我們需要阻止事件冒泡,呼叫自己寫的cancelBubble()方法。好了,本文的內容到此基本介紹了,希望能夠對大家的學習或工作帶來一定的幫助,如果有疑問大家可以留言交流。

以上是如何利用CSS技術實現下拉框酷炫的特效的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
丟失的CSS技巧cohost.org丟失的CSS技巧cohost.orgApr 25, 2025 am 09:51 AM

在這篇文章中,布萊克·莫里(Blackle Mori)向您展示了一些駭客,同時試圖推動同位HTML支持的極限。如果您敢於使用這些,以免您也被標記為CSS罪犯。

光標的下一個CSS樣式光標的下一個CSS樣式Apr 23, 2025 am 11:04 AM

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測世界碰撞:使用樣式查詢的鑰匙幀碰撞檢測Apr 23, 2025 am 10:42 AM

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

使用CSS背景過濾器進行UI效果使用CSS背景過濾器進行UI效果Apr 23, 2025 am 10:20 AM

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

微笑嗎?微笑嗎?Apr 23, 2025 am 09:57 AM

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

'漂亮”在情人眼中'漂亮”在情人眼中Apr 23, 2025 am 09:40 AM

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

CSS-tricks編年史XLIIICSS-tricks編年史XLIIIApr 23, 2025 am 09:35 AM

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

tailwind的@Apply功能比聽起來更好tailwind的@Apply功能比聽起來更好Apr 23, 2025 am 09:23 AM

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版