js實(shí)現(xiàn)帶緩沖效果的仿QQ面板折疊菜單代碼
本文實(shí)例講述了js實(shí)現(xiàn)帶緩沖效果的仿QQ面板折疊菜單代碼。分享給大家供大家參考。具體如下:
帶緩沖效果的仿QQ面板折疊菜單代碼,使用方法:調(diào)用效果: Effect(1,2);
其中1為: 被改變對象的id
其中2為: 控制容器的id 可在使用: this.parentNode.id 取得(父標(biāo)簽的id)
注意給對象ID的時候一定不要重復(fù)。
運(yùn)行效果如下圖所示:
在線演示地址如下:
http://demo.jb51.net/js/2015/js-buffer-style-qq-menu-codes/
具體代碼如下:
<html> <head> <title>帶緩沖效果的仿QQ面板折疊菜單代碼</title> <script> function $G(Read_Id) { return document.getElementById(Read_Id) } function Effect(ObjectId,parentId){ var Obj_Display = $G(ObjectId).style.display; if (Obj_Display == 'none'){ Start(ObjectId,'Opens'); $G(parentId).innerHTML = "<a href=# onClick=javascript:Effect('"+ObjectId+"','"+parentId+"');>-</a>" }else{ Start(ObjectId,'Close'); $G(parentId).innerHTML = "<a href=# onClick=javascript:Effect('"+ObjectId+"','"+parentId+"');>+</a>" } } function Start(ObjId,method){ var BoxHeight = $G(ObjId).offsetHeight; //獲取對象高度 var MinHeight = 5;//定義對象最小高度 var MaxHeight = 130;//定義對象最大高度 var BoxAddMax = 1;//遞增量初始值 var Every_Add = 0.15;//每次的遞(減)增量 [數(shù)值越大速度越快] var Reduce = (BoxAddMax - Every_Add); var Add = (BoxAddMax + Every_Add); //關(guān)閉動作** if (method == "Close"){ var Alter_Close = function(){//構(gòu)建一個虛擬的[遞減]循環(huán) BoxAddMax /= Reduce; BoxHeight -= BoxAddMax; if (BoxHeight <= MinHeight){ $G(ObjId).style.display = "none"; window.clearInterval(BoxAction); } else $G(ObjId).style.height = BoxHeight; } var BoxAction = window.setInterval(Alter_Close,1); } //打開動作* else if (method == "Opens"){ var Alter_Opens = function(){ BoxAddMax *= Add; BoxHeight += BoxAddMax; if (BoxHeight >= MaxHeight){ $G(ObjId).style.height = MaxHeight; window.clearInterval(BoxAction); }else{ $G(ObjId).style.display= "block"; $G(ObjId).style.height = BoxHeight; } } var BoxAction = window.setInterval(Alter_Opens,1); } } </script> <style> table{width:192px;overflow:hidden} #control,#control table,#control table td{ font-size:12px;} #control{ width:192px; background-color:#ccc; font-size:12px; font-color:#333333; text-align:center; } #control table{ width:192px; height:20px; overflow:hidden} #control table li{ list-style:none;height:20px;line-height:20px; overflow:hidden} #control table .tabTit{background:#E0E8B8;} #control a { font-weight:normal; font-size:24px; color:#6F7848; text-decoration:none; padding-right:10px;} #control .testLink{ font-weight:bold; font-size:12px} .test{ width:192px;background-color:#f6f6f6;overflow:hidden; } .test li{ list-style:none; color:#000; font-size:13px; line-height:20px;} #control table,.test table{ margin:0 auto; text-align:center} .STYLE1 { font-size: 8px; color: #fff; } </style> </head> <body> <div id="control"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="100%" align="center" class="tabTit" ><li id="testtab" style="float:right"><a href="#" onClick="Effect('test',this.parentNode.id);" >+</a> </li><li style="float:left"><a href="#" onClick="Effect('test');" class="testLink">緩沖菜單</a> </li></td> </tr> </table> </div> <div id="test" class="test" style="display:none;"> <table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#EEEEEE"> <tr> <td colspan="3" align="center" valign="top"><ul><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li></ul></td> </tr> </table> </div> <br> <div id="control"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="100%" align="center" class="tabTit" ><li id="test1tab" style="float:right"><a href="#" onClick="Effect('test1',this.parentNode.id);" >+</a> </li><li style="float:left"><a href="#" onClick="Effect('test1');" class="testLink">緩沖菜單</a></li></td> </tr> </table> </div> <div id="test1" class="test" style="display:none;"> <table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#EEEEEE"> <tr> <td colspan="3" align="center" valign="top"><ul><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li><li>緩沖菜單</li></ul></td> </tr> </table> </div> <br> <div id="control"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="100%" align="center" class="tabTit" ><li id="test2tab" style="float:right"><a href="#" onClick="Effect('test2',this.parentNode.id);" >+</a> </li><li style="float:left"><a href="#" onClick="Effect('test2');" class="testLink">緩沖菜單</a></li></td> </tr> </table> </div> <div id="test2" class="test" style="display:none;"> <table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#EEEEEE"> <tr> <td colspan="3" align="center" valign="top"><ul><li>緩沖菜單</li><li>緩沖菜單</li></ul></td> </tr> </table> </div> <br> <div id="control"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="100%" align="center" class="tabTit" ><li id="test3tab" style="float:right"><a href="#" onClick="Effect('test3',this.parentNode.id);" >+</a> </li><li style="float:left"><a href="#" onClick="Effect('test3');" class="testLink">緩沖菜單</a></li></td> </tr> </table> </div> <div id="test3" class="test" style="display:none;"> <table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#EEEEEE"> <tr> <td colspan="3" align="center" valign="top"><ul><li>緩沖菜單</li><li>緩沖菜單</li></ul></td> </tr> </table> </div> <br> <div id="control"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="100%" align="center" class="tabTit" ><li id="test4tab" style="float:right"><a href="#" onClick="Effect('test4',this.parentNode.id);" >+</a> </li><li style="float:left"><a href="#" onClick="Effect('test4');" class="testLink">緩沖菜單</a></li></td> </tr> </table> </div> <div id="test4" class="test" style="display:none;"> <table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#EEEEEE"> <tr> <td colspan="3" align="center" valign="top"><ul><li>緩沖菜單</li><li>緩沖菜單</li></ul></td> </tr> </table> </div> </body> </html>
希望本文所述對大家的JavaScript程序設(shè)計有所幫助。
- 原生JS仿QQ閱讀點(diǎn)擊展開、收起效果
- JS實(shí)現(xiàn)的仿QQ空間圖片彈出效果代碼
- js實(shí)現(xiàn)仿qq消息的彈出窗效果
- JS實(shí)現(xiàn)超簡單的仿QQ折疊菜單效果
- JS實(shí)現(xiàn)仿QQ面板的手風(fēng)琴效果折疊菜單代碼
- JS實(shí)現(xiàn)仿QQ聊天窗口抖動特效
- 純js實(shí)現(xiàn)仿QQ郵箱彈出確認(rèn)框
- 基于zepto.js實(shí)現(xiàn)仿手機(jī)QQ空間的大圖查看組件ImageView.js詳解
- javascript仿qq界面的折疊菜單實(shí)現(xiàn)代碼
- js設(shè)置控件的隱藏與顯示的兩種方法
- js菜單點(diǎn)擊顯示或隱藏效果的簡單實(shí)例
- javascript 控制 html元素 顯示/隱藏實(shí)現(xiàn)代碼
- JS實(shí)現(xiàn)的模仿QQ頭像資料卡顯示與隱藏效果
相關(guān)文章
深入理解JavaScript中為什么string可以擁有方法
下面小編就為大家?guī)硪黄钊肜斫釰avaScript中為什么string可以擁有方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05完美兼容IE,chrome,ff的設(shè)為首頁、加入收藏及保存到桌面js代碼
這篇文章主要給大家分享了完美兼容IE,chrome,ff的設(shè)為首頁、收藏本站及保存到桌面js代碼,有需要的小伙伴參考下。2014-12-12JS實(shí)現(xiàn)消息來時讓網(wǎng)頁標(biāo)題閃動效果的方法
這篇文章主要介紹了JS實(shí)現(xiàn)消息來時讓網(wǎng)頁標(biāo)題閃動效果的方法,實(shí)例分析了JavaScript基于時間函數(shù)動態(tài)操作頁面元素的技巧,并附帶了開心網(wǎng)的標(biāo)題閃動解決方案,需要的朋友可以參考下2016-04-04如何使Chrome控制臺支持多行js模式——意外發(fā)現(xiàn)
一直以來,Chrome控制臺都缺少象IE調(diào)試臺那樣的多行執(zhí)行模式,今天意外發(fā)現(xiàn)Chrome其實(shí)也支持多行模式2013-06-06