摘要:以前實(shí)習(xí)的時候因?yàn)橼s時間直接用的插件做了個折疊菜單,對于一個原生控來說還是更傾向于自己寫一個,畢竟為了個折疊菜單引入和有點(diǎn)太臃腫了。原版的效果其實(shí)也不難,主要是在開合的過程中添加了的過渡效果。
以前實(shí)習(xí)的時候因?yàn)橼s時間直接用bootstrap的插件collapse.js做了個折疊菜單, 對于一個原生控來說還是更傾向于自己寫一個, 畢竟為了個折疊菜單引入jq和bootstrap有點(diǎn)太臃腫了。 于是又到了考驗(yàn)山寨能力的時候了-_-# 。
原版collapse.js的效果其實(shí)也不難,主要是在開合的過程中添加了css3的過渡效果。以下是原版與山寨版demo,同時點(diǎn)擊預(yù)覽,可明顯感受到加載速度的區(qū)別。
DEMO:
Bootstrap原版Collapse
接下來是本人山寨版(山寨版結(jié)構(gòu)簡單,代碼輕巧,無依賴^_^):
Collapse by native JS
打包下載出門左轉(zhuǎn)Github ? Collapse By Native JS
以下是代碼邏輯:
HTML的結(jié)構(gòu)
Title1
content1
content1
content1
content1
content1
content1
content1
content1
content1
Title2
content2
content2
content2
content2
content2
content2
content2
content2
content2
Title3
content3
content3
content3
content3
content3
content3
content3
content3
content3
Title4
content4
content4
content4
content4
content4
content4
content4
content4
content4
CSS(要山寨就盡量山寨得徹底,外觀樣式全部從bootstrap的樣式搬運(yùn)過來):
* { box-sizing:border-box; -webkit-box-sizing:border-box; } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; background-color: #fff; margin: 2px; } a{ text-decoration: underline; color: #666666; } a:hover{ text-decoration: none; } .collapseDiv{ color: #333; border-radius: 4px; background-color: #f5f5f5; border:1px solid transparent; border-color: #ffffd; box-shadow: 0 1px 1px rgba(0,0,0,.05); margin-top: 5px; margin-bottom: 0; } .collapseDiv h3{ font-size: 14px; font-weight: bold; color: #333; border-color: #ffffd; padding-top: 5px; padding-right: 15px; padding-bottom: 5px; padding-left: 15px; background-color: #f5f5f5; margin: 0; } .collapse_body { background-color:#fff ; position: relative; height: 0; overflow: hidden; -webkit-transition-timing-function: ease; -o-transition-timing-function: ease; transition-timing-function: ease; -webkit-transition-duration: .35s; -o-transition-duration: .35s; transition-duration: .35s; -webkit-transition-property: height, visibility; -o-transition-property: height, visibility; transition-property: height, visibility } .collapse_content{ border-top: 1px solid #ffffd; background-color:#fff ; padding:15px; }
JS
//接受三個參數(shù),分別是折疊菜單的外包div名稱,是否關(guān)閉之前的折疊,默認(rèn)開啟的折疊內(nèi)容 function Collapse(className,close_prev,default_open){ this._elements = []; this._className = String(className); this._previous = Boolean(close_prev) this._default = typeof(default_open)==="number" ? default_open: -1 this.getCurrent this.init(); } //收集所有折疊菜單的div Collapse.prototype.collectElementbyClass = function(){ this._elements = []; var allelements = document.getElementsByTagName("div"); for(var i=0;i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/86193.html
摘要:聲明聲明本篇內(nèi)容摘抄自以下兩個來源中文網(wǎng)感謝大佬們的分享。版本是全球最受歡迎的前端組件庫,用于開發(fā)響應(yīng)式布局移動設(shè)備優(yōu)先的項(xiàng)目。官方示例官方示例版本,官方還沒有中文教程,的中文教程倒是很齊全了。聲明 本篇內(nèi)容摘抄自以下兩個來源: BootStrap中文網(wǎng) 感謝大佬們的分享。 正文-響應(yīng)式布局(BootStrap) 這次想來講講一個前端開發(fā)框架:BootStrap BootStrap 目前...
摘要:移動端導(dǎo)航欄有個很常見的折疊菜單,有插件實(shí)現(xiàn),有組件。最近用無插件實(shí)現(xiàn)一個這樣的效果。探究歷程直接采用,雖然實(shí)現(xiàn)了控制容器的顯示和隱藏,但是效果生硬。 移動端導(dǎo)航欄有個很常見的折疊菜單,bootstrap有collapse插件實(shí)現(xiàn),jQuery UI有Accordion組件。最近用js無插件實(shí)現(xiàn)一個這樣的效果。 探究歷程 display:none; 直接采用display,雖然實(shí)現(xiàn)...
摘要:移動端導(dǎo)航欄有個很常見的折疊菜單,有插件實(shí)現(xiàn),有組件。最近用無插件實(shí)現(xiàn)一個這樣的效果。探究歷程直接采用,雖然實(shí)現(xiàn)了控制容器的顯示和隱藏,但是效果生硬。 移動端導(dǎo)航欄有個很常見的折疊菜單,bootstrap有collapse插件實(shí)現(xiàn),jQuery UI有Accordion組件。最近用js無插件實(shí)現(xiàn)一個這樣的效果。 探究歷程 display:none; 直接采用display,雖然實(shí)現(xiàn)...
閱讀 1904·2021-09-28 09:43
閱讀 1204·2021-09-23 11:22
閱讀 2822·2021-09-14 18:05
閱讀 1885·2019-08-30 15:52
閱讀 2885·2019-08-30 10:55
閱讀 2101·2019-08-29 16:58
閱讀 1462·2019-08-29 16:37
閱讀 3109·2019-08-29 16:25