原生JS實現(xiàn)垂直手風(fēng)琴效果
更新時間:2017年02月19日 11:31:37 作者:漫步未來
本篇文章主要介紹了原生JS實現(xiàn)垂直手風(fēng)琴效果的示例代碼,具有很好的參考價值,下面跟著小編一起來看下吧
效果如下:
圖 (1) 展開前
圖 (2) 展開后
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> *{ margin: 0; padding: 0; } .panel { width: 555px; height: auto; background-color: #333333; margin: 50px auto; } .panel-title { width: 100%; height: 68px; text-align: center; font: 600 18px/68px '微軟雅黑'; color: #fff; cursor: pointer; } .collapse { width: 100%; height: 0; background-color: #167EA0; overflow: hidden; } .collapse p { color: #fff; font: 500 16px '微軟雅黑'; text-indent: 2em; padding: 20px 20px 0 20px; } #One,#Tow,#Three{ border-top: solid 1px #ccc; } </style> </head> <body> <div class="panel" id="panel"> <h4 class="panel-title" id="panel-title">1 《抉擇》</h4> <div class="collapse" id = "One"><p></p></div> <h4 class="panel-title" id="panel-title">2 《生命》</h4> <div class = "collapse" id="Tow"><p></p></div> <h4 class="panel-title" id="panel-title">3 《大小》</h4> <div class = "collapse" id="Three"><p></p></div> <h4 class="panel-title" id="panel-title">4 《崇拜》</h4> <div class = "collapse" id="Four"><p></p></div> </div> </body> <script> function animate(obj,json,endFn){ //關(guān)閉上一個定時器 clearInterval(obj.timer); //管理定時器 obj.timer = setInterval(function(){ //定時器開關(guān) ,用來判斷是否定時定時器 var flag = true; //遍歷json for(var arrt in json){ //計算步長 步長 = 目標(biāo)位置 - 當(dāng)前位置 var step = (json[arrt] - parseInt(getStyle(obj,arrt))) / 5; //步長取整 step = step > 0 ? Math.ceil(step): Math.floor(step); //盒子移動: 盒子現(xiàn)在的位置 + 步長取整 obj.style[arrt] = parseInt(getStyle(obj,arrt)) + step + 'px'; //只要其中一個不滿足條件,就不停止定時器 if(parseInt(getStyle(obj,arrt)) != json[arrt]){ flag = false; } } //關(guān)閉定時器 if(flag){ clearInterval(obj.timer); //2秒后執(zhí)行回調(diào)函數(shù) setTimeout(function(){ //判斷是否有回調(diào)函數(shù),有endFn 再執(zhí)行回調(diào)函數(shù) endFn&&endFn(); },1000) } },20); } //獲得現(xiàn)在的樣式 function getStyle(obj,arrt){ //兼容ie return obj.currentStyle? obj.currentStyle[arrt] : getComputedStyle(obj,null)[arrt]; } var panel = document.getElementById("panel"); var oH = panel.getElementsByTagName('h4'); var oDiv = panel.getElementsByTagName('div'); var str = ["人的一生常處于抉擇之中,如:念哪一間大學(xué)?選哪一種職業(yè)?娶哪一種女子?……等等傷腦筋的事情。一個人抉擇力的有無,可以顯示其人格成熟與否。倒是哪些胸?zé)o主見的人,不受抉擇之苦。因為逢到需要決定的時候,他總是求詢別人說:'嘿,你看怎么做?'大凡能夠成大功業(yè)的人,都是抉擇力甚強的人。他知道事之成敗,全在乎已沒有人可以代勞,更沒有人能代你決定。在抉擇的哪一刻,成敗實已露出端倪。","生命,也許是宇宙之間唯一應(yīng)該受到崇拜的因素。生命的孕育、誕生和顯示本質(zhì)是一種無比激動人心的過程。生命像音樂和畫面一樣暗自挾帶著一種命定的聲調(diào)或血色,當(dāng)它遇到大潮的襲卷,當(dāng)它聽到號角的催促時,它會頓時抖擻,露出本質(zhì)的絢爛和激昂。當(dāng)然,這本質(zhì)更可能是卑污、懦弱、乏味的;它的主人并無選擇的可能。應(yīng)當(dāng)承認,生命就是希望。應(yīng)當(dāng)說,卑鄙和庸俗不該得意過早,不該誤認為它們已經(jīng)成功地消滅了高尚和真純。偽裝也同樣不能持久,因為時間像一條長河在滔滔沖刷,卑鄙者、奸商和俗棍不可能永遠戴著教育家、詩人和戰(zhàn)士的桂冠。在他們暢行無阻的生涯盡頭,他們的后人將長久地感到羞辱。","一位朋友談到他親戚的姑婆,一生從來沒有穿過合腳的鞋子,常穿著巨大的鞋子走來走去。兒子晚輩如果問她,她就會說:'大小鞋都是一樣的價錢,為什么不買大的?'每次我轉(zhuǎn)述這個故事,總有一些人笑得岔了氣。其實,在生活里我們會看到很多這樣的'姑婆'。沒有什么思想的作家,偏偏寫著厚重苦澀的作品;沒有什么內(nèi)容的畫家,偏偏畫著超級巨畫;經(jīng)常不在家的商人,卻有非常巨大的家園。許多人不斷地追求巨大,其實只是被內(nèi)在貪欲推動著,就好像買了特大號的鞋子,忘了自己的腳一樣。不管買什么鞋子,合腳最重要,不論追求什么,總要適可而止。","我崇拜高尚的生命的秘密。我崇拜這生命在降生、成長、戰(zhàn)斗、傷殘、犧牲時迸濺出的鋼花焰火。我崇拜一個活靈靈的生命在崇山大河,在海洋和大陸上飄蕩的自由。是的,生命就是希望。它飄蕩無定,自由自在,它使人類中總有一支血脈不甘于失敗,九死不悔地追尋著自己的金牧場。"]; for(var i = 0;i<oH.length;i++){ oH[i].index = i; oH[i].onclick = function(){ for(var j = 0;j<oH.length; j++){ animate(oDiv[j],{height:0}); } if(parseInt(getStyle(oDiv[this.index],'height')) == 0){ animate(oDiv[this.index],{height:210}); oDiv[this.index].children[0].innerHTML = str[this.index]; }else{ animate(oDiv[this.index],{height:0}); } } } </script> </html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
JavaScript eval()函數(shù)定義及使用方法詳解
這篇文章主要介紹了JavaScript eval()函數(shù)定義及使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07JavaScript獲取鼠標(biāo)移動時的坐標(biāo)(兼容IE8、chome谷歌、Firefox)
這篇文章主要介紹了JavaScript獲取鼠標(biāo)移動時的坐標(biāo)(兼容IE8、chome谷歌、Firefox瀏覽器),需要的朋友可以參考下2014-09-09JavaScript實現(xiàn)點擊出現(xiàn)子菜單效果
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)點擊出現(xiàn)子菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-02-02詳解微信小程序與內(nèi)嵌網(wǎng)頁交互實現(xiàn)支付功能
這篇文章主要介紹了詳解微信小程序與內(nèi)嵌網(wǎng)頁交互實現(xiàn)支付功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10