jQuery+CSS3折疊卡片式下拉列表框?qū)崿F(xiàn)效果
jQuery下拉列表框特效將每一個(gè)列表項(xiàng)都制作為卡片的樣式,打開和關(guān)閉它有打開和關(guān)閉百葉窗的感覺,效果非常不錯(cuò),分享給大家。
簡要教程
HTML結(jié)構(gòu)
該下拉列表框特效的列表項(xiàng)使用一個(gè)無序列表來制作,用于切換打開和關(guān)閉狀態(tài)的元素是一個(gè)超鏈接元素。
<div class="container"> <div class="card-drop"> <a class='toggle' href="#"> <i class='fa fa-suitcase'></i> <span class='label-active'>Everyting</span> </a> <ul> <li class='active'> <a data-label="Everyting" href="#"><i class='fa fa-suitcase'></i> Everyting</a> </li> ...... </ul> </div> </div>
CSS樣式
a.toggle元素用于切換下拉列表的打開和關(guān)閉狀態(tài)。為了制作點(diǎn)擊時(shí)卡片上翻的效果,它被設(shè)置了transform-style: preserve-3d;屬性。同時(shí)修改了轉(zhuǎn)換的原點(diǎn)transform-origin: 50% 0%;。
.card-drop > a.toggle { position: relative; z-index: 100; -moz-backface-visibility: hidden; -webkit-backface-visibility: hidden; backface-visibility: hidden; -moz-transform-style: preserve-3d; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -moz-transform-origin: 50% 0%; -ms-transform-origin: 50% 0%; -webkit-transform-origin: 50% 0%; transform-origin: 50% 0%; -moz-transition: linear 0.1s; -o-transition: linear 0.1s; -webkit-transition: linear 0.1s; transition: linear 0.1s; }
但它處于激活狀態(tài)的時(shí)候,它會(huì)沿X軸進(jìn)行旋轉(zhuǎn),并使用:before和:after偽元素來制作角部三角形效果。
.card-drop > a.toggle:active { -moz-transform: rotateX(60deg); -webkit-transform: rotateX(60deg); transform: rotateX(60deg); } .card-drop > a.toggle:active:after { -moz-transform: rotateX(180deg); -webkit-transform: rotateX(180deg); transform: rotateX(180deg); } .card-drop > a.toggle:before, .card-drop > a.toggle:after { content: ""; position: absolute; } .card-drop > a.toggle:before { right: 25px; top: 50%; margin-top: -2.5px; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid rgba(0, 0, 0, 0.8); } .card-drop > a.toggle.active:before { transform: rotate(180deg); }
列表項(xiàng)在切換時(shí)只是簡單的使用jQuery來修改它們的top、width和margin-left屬性,使其顯示和隱藏。并使用ease-out作為CSS動(dòng)畫過渡效果。
.card-drop ul { position: absolute; height: 100%; top: 0; display: block; width: 100%; } .card-drop ul li { margin: 0 auto; -moz-transition: all, ease-out 0.3s; -o-transition: all, ease-out 0.3s; -webkit-transition: all, ease-out 0.3s; transition: all, ease-out 0.3s; position: absolute; top: 0; z-index: 0; width: 100%; } .card-drop ul li a { border-top: none; } .card-drop ul li a:hover { background-color: #4aa3df; color: #f3f9fd; } .card-drop ul li.active a { color: #fff; background-color: #258cd1; cursor: default; } .card-drop ul li.closed a:hover { cursor: default; background-color: #3498db; }
JavaScript
在jQuery代碼中,setClosed()函數(shù)用于關(guān)閉所有的列表項(xiàng),默認(rèn)它們是處于關(guān)閉狀態(tài)的。
function setClosed() { li.each(function (index) { $(this).css('top', index * 4).css('width', width - index * 0.5 + '%').css('margin-left', index * 0.25 + '%'); }); li.addClass('closed'); toggler.removeClass('active'); } setClosed();
然后監(jiān)聽.toggle元素的mousedown事件,該事件中切換列表的打開和關(guān)閉狀態(tài)。
toggler.on('mousedown', function () { var $this = $(this); if ($this.is('.active')) { setClosed(); } else { $this.addClass('active'); li.removeClass('closed'); li.each(function (index) { $(this).css('top', 60 * (index + 1)).css('width', '100%').css('margin-left', '0px'); }); } });
最后在每一個(gè)列表項(xiàng)被點(diǎn)擊的時(shí)候,將該列表項(xiàng)的內(nèi)容移動(dòng)到第一項(xiàng)中,被關(guān)閉整個(gè)下來列表。
links.on('click', function (e) { var $this = $(this), label = $this.data('label'); icon = $this.children('i').attr('class'); li.removeClass('active'); if ($this.parent('li').is('active')) { $this.parent('li').removeClass('active'); } else { $this.parent('li').addClass('active'); } toggler.children('span').text(label); toggler.children('i').removeClass().addClass(icon); setClosed(); e.preventDefault; });
以上就是為大家分享的jQuery和CSS3制作的效果,非常炫酷的下拉列表框特效,希望大家喜歡
- 利用jquery操作select下拉列表框的代碼
- jQuery 操作下拉列表框?qū)崿F(xiàn)代碼
- 基于jquery的可多選的下拉列表框
- PHP+Mysql+jQuery查詢和列表框選擇操作實(shí)例講解
- JS,Jquery獲取select,dropdownlist,checkbox下拉列表框的值(示例代碼)
- jQuery實(shí)現(xiàn)可移動(dòng)選項(xiàng)的左右下拉列表示例
- jquery實(shí)現(xiàn)列表上下移動(dòng)功能
- jquery移動(dòng)點(diǎn)擊的項(xiàng)目到列表最頂端的方法
- jQuery實(shí)現(xiàn)左右兩個(gè)列表框的內(nèi)容相互移動(dòng)功能示例
相關(guān)文章
基于jquery的lazy loader插件實(shí)現(xiàn)圖片的延遲加載[簡單使用]
當(dāng)網(wǎng)站上有大量圖片要展示的話,如果一次把所有的圖片都加載出來的話,這勢必會(huì)影響網(wǎng)站的加載速度,給用戶帶來比較差的體驗(yàn)。2011-05-05JQuery里面的幾種選擇器 查找滿足條件的元素$("#控件ID")
JQuery里面的幾種選擇器 查找滿足條件的元素$("#控件ID"),使用jquery的朋友可以參考下。2011-08-08jQuery一步一步實(shí)現(xiàn)跨瀏覽器的可編輯表格,支持IE、Firefox、Safari、Chrome、Opera
在修改數(shù)據(jù)時(shí),有時(shí)候?yàn)榱朔奖悖覀兿M軌蛑苯釉诒砀窭锩鎸?duì)數(shù)據(jù)進(jìn)行直接修改。2009-08-08jquery+json實(shí)現(xiàn)的搜索加分頁效果
Javascript,json 實(shí)現(xiàn)的js 腳本搜索,加分頁,附源碼2010-03-03jQuery.uploadify文件上傳組件實(shí)例講解
這篇文章主要介紹了jQuery.uploadify文件上傳組件實(shí)例講解的相關(guān)資料,本文圖文并茂介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09jQuery移除或禁用html元素點(diǎn)擊事件常用方法小結(jié)
這篇文章主要介紹了jQuery移除或禁用html元素點(diǎn)擊事件常用方法,結(jié)合實(shí)例形式總結(jié)分析了jQuery針對(duì)onclick事件的禁用與屏蔽技巧,需要的朋友可以參考下2017-02-02