表现、结构、行为分离的选项卡效果_javascript技巧 2020年6月24日 12:47:52js教程评论566 views阅读模式 从大学开始就一直对JS很感兴趣,可是却很少实际操作,今天练练,试写一个tab,调试过程中才发现光看不练问题不少! 其特点是扩展方便,只要自己添加标题和内容即可,自动初始化。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>www.jb51.net表现、结构、行为分离的选项卡效果 脚本之家</title> <script language="javascript"> window.onload=resetTab; function getTabTitle(tab) { var childNodesList=tab.childNodes; var titleNodes=new Array(); var j=0; var i; for (i=0;i<childNodesList.length;i++) { if(childNodesList[i].nodeName=="H1") { titleNodes[j]=childNodesList[i]; j++; } } return titleNodes; } function getTabContent(tab) { var childNodesList=tab.childNodes; var tabContent=new Array(); var j=0; var i; for (i=0;i<childNodesList.length;i++) { if(childNodesList[i].nodeName=="DIV") { tabContent[j]=childNodesList[i]; j++; } } return tabContent; } function resetTab() { var allDiv=document.getElementsByTagName("div"); var tab=new Array(); var j=0; var i; for (i=0;i<allDiv.length;i++) { if(allDiv[i].className=="tabs") { tab[j]=allDiv[i]; j++; } } var tabTitle,tabContent; for(i=0;i<tab.length;i++) { tabTitle=getTabTitle(tab[i]); tabTitle[0].className="selectTab"; tabContent=getTabContent(tab[i]); tabContent[0].className="selectContent"; for (j=1;j<tabTitle.length;j++) { tabTitle[j].className="unselectTab"; tabContent[j].className="unselectContent"; } } } function changTab(tab) { var tabTitle,tabContent,i; if(tab.className!="selectTab") { tabTitle=getTabTitle(tab.parentNode); tabContent=getTabContent(tab.parentNode); for(i=0;i<tabTitle.length;i++) { if(tabTitle[i].className=="selectTab") { tabTitle[i].className="unselectTab"; } if(tabContent[i].className=="selectContent") { tabContent[i].className="unselectContent"; } } tab.className="selectTab"; for(i=0;i<tabTitle.length;i++) { if(tabTitle[i].className=="selectTab") { tabContent[i].className="selectContent"; break; } } } } </script> <style type="text/css"> <!-- body { margin:50px; padding: 0px; } .tabs { width:auto; height:auto; border: 0px solid red; } .selectTab,.unselectTab { border:1px solid #BDDFF9; border-bottom-width: 0; width:150px; height:23px; line-height:23px; vertical-align: middle; text-align:center; background-color:#37709B; margin: 0; margin-right: 18px; font-weight:bold; font-size:14px; color:#FFF; cursor: pointer; float:left; } .unselectTab { color:#37709B; background-color: white; } .selectContent { border-top: 5px #37709b solid; padding-top: 8px; clear: both; } .unselectContent { display: none; } --> </style> </head> <body> <div class="tabs"> <h1 onmouseover="changTab(this)"> 选项卡[1] </h1> <h1 onmousemove="changTab(this)"> 选项卡[2] </h1> <h1 onmouseover="changTab(this)"> 选项卡[3] </h1> <h1 onmousemove="changTab(this)"> 选项卡[4] </h1> <div>1经过前述的多个步骤,一个基本的CHM文件已制作完毕,在编译前还可进行一些完善功能的设置,具体如下所述。</div> <div>2门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区</div> <div>3经过前述的多个步骤,一个基本的CHM文件已制作完毕,在编译前还可进行一些完善功能的设置,具体如下所述。</div> <div>4门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区门类武功展区</div> </div> </body> </html> [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 点赞 登录收藏 https://www.qieseo.com/383452.html 复制链接 复制链接