摘要:以前實習的時候因為趕時間直接用的插件做了個折疊菜單,對于一個原生控來說還是更傾向于自己寫一個,畢竟為了個折疊菜單引入和有點太臃腫了。原版的效果其實也不難,主要是在開合的過程中添加了的過渡效果。
以前實習的時候因為趕時間直接用bootstrap的插件collapse.js做了個折疊菜單, 對于一個原生控來說還是更傾向于自己寫一個, 畢竟為了個折疊菜單引入jq和bootstrap有點太臃腫了。 于是又到了考驗山寨能力的時候了-_-# 。
原版collapse.js的效果其實也不難,主要是在開合的過程中添加了css3的過渡效果。以下是原版與山寨版demo,同時點擊預覽,可明顯感受到加載速度的區別。
DEMO:
Bootstrap原版Collapse
接下來是本人山寨版(山寨版結構簡單,代碼輕巧,無依賴^_^):
Collapse by native JS
打包下載出門左轉Github ? Collapse By Native JS
以下是代碼邏輯:
HTML的結構
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的樣式搬運過來):
* { 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
//接受三個參數,分別是折疊菜單的外包div名稱,是否關閉之前的折疊,默認開啟的折疊內容 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86193.html
摘要:聲明聲明本篇內容摘抄自以下兩個來源中文網感謝大佬們的分享。版本是全球最受歡迎的前端組件庫,用于開發響應式布局移動設備優先的項目。官方示例官方示例版本,官方還沒有中文教程,的中文教程倒是很齊全了。聲明 本篇內容摘抄自以下兩個來源: BootStrap中文網 感謝大佬們的分享。 正文-響應式布局(BootStrap) 這次想來講講一個前端開發框架:BootStrap BootStrap 目前...
摘要:移動端導航欄有個很常見的折疊菜單,有插件實現,有組件。最近用無插件實現一個這樣的效果。探究歷程直接采用,雖然實現了控制容器的顯示和隱藏,但是效果生硬。 移動端導航欄有個很常見的折疊菜單,bootstrap有collapse插件實現,jQuery UI有Accordion組件。最近用js無插件實現一個這樣的效果。 探究歷程 display:none; 直接采用display,雖然實現...
摘要:移動端導航欄有個很常見的折疊菜單,有插件實現,有組件。最近用無插件實現一個這樣的效果。探究歷程直接采用,雖然實現了控制容器的顯示和隱藏,但是效果生硬。 移動端導航欄有個很常見的折疊菜單,bootstrap有collapse插件實現,jQuery UI有Accordion組件。最近用js無插件實現一個這樣的效果。 探究歷程 display:none; 直接采用display,雖然實現...
閱讀 1751·2021-09-28 09:43
閱讀 1111·2021-09-23 11:22
閱讀 2707·2021-09-14 18:05
閱讀 1823·2019-08-30 15:52
閱讀 2812·2019-08-30 10:55
閱讀 2007·2019-08-29 16:58
閱讀 1323·2019-08-29 16:37
閱讀 3031·2019-08-29 16:25