实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业

400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > web前端 > 【W(wǎng)eb前端基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)網(wǎng)頁(yè)中常見(jiàn)的切換效果

【W(wǎng)eb前端基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)網(wǎng)頁(yè)中常見(jiàn)的切換效果

  • 發(fā)布: Web前端培訓(xùn)
  • 來(lái)源:Web前端干貨資料
  • 2020-11-25 11:26:42
  • 閱讀()
  • 分享
  • 手機(jī)端入口

在頁(yè)面中tab切換非常的常見(jiàn),我們先來(lái)看下網(wǎng)站中tab切換的實(shí)際案例。

我們來(lái)做一個(gè)簡(jiǎn)單的tab切換的案例吧~學(xué)會(huì)了下面的案例,只要通過(guò)更改樣式,就可以實(shí)現(xiàn)上面實(shí)例中的樣子啦~

一、需求:

1.三個(gè)標(biāo)題對(duì)應(yīng)三個(gè)內(nèi)容區(qū)域。

2.默認(rèn)“標(biāo)題1“文字顏色是紅色,其他標(biāo)題文字顏色為黑色。

3.“標(biāo)題1“對(duì)應(yīng)的”內(nèi)容1“展示出來(lái),其他兩個(gè)內(nèi)容區(qū)域隱藏。

4.點(diǎn)擊“標(biāo)題幾“: ”標(biāo)題幾“的文字顏色是紅色,其他標(biāo)題顏色為黑色,對(duì)應(yīng)的”內(nèi)容幾“展示出來(lái),其他內(nèi)容區(qū)域隱藏。

如圖所示:

二、樣式和結(jié)構(gòu):

我們先寫(xiě)結(jié)構(gòu)和樣式部分:

  1. <style> 
  2. .on{ 
  3.        /* 讓class名是on的元素,文字變成紅色 */ 
  4.        color: red; 
  5.    } 
  6.    #con div{ 
  7.         width: 200px; 
  8.         height: 200px; 
  9.         border:10px solid orange; 
  10.         /* 讓內(nèi)容區(qū)域都隱藏起來(lái) */ 
  11.          display: none; 
  12.     } 
  13.     #con .active{ 
  14.          /* 讓class名是active的元素顯示出來(lái) */ 
  15.          display: block; 
  16.     } 
  17. </style> 
  18. <body> 
  19.     <div id="btn"> 
  20.         <button class="on">標(biāo)題1</button> 
  21.         <button>標(biāo)題2</button> 
  22.         <button>標(biāo)題3</button> 
  23.     </div> 
  24.     <div id="con"> 
  25.         <div class="active">內(nèi)容1</div> 
  26.         <div>內(nèi)容2</div> 
  27.         <div>內(nèi)容3</div> 
  28.     </div> 
  29. </body> 

三、按鈕部分分析:

1.點(diǎn)擊每個(gè)按鈕之后所干的事是一樣的,所以我們用for循環(huán)寫(xiě)。

2.點(diǎn)擊按鈕之后,我們先去掉所有按鈕的class名,這樣所有按鈕里的文字顏色就都是默認(rèn)的黑色。

3.然后我們給當(dāng)前點(diǎn)擊的這個(gè)按鈕加上class名是on就可以了,上面樣式里面我們已經(jīng)定義好了class名是on的元素文字顏色是紅色。

代碼如下:

  1. for(var i = 0; i < obtn.length; i++){ 
  2. // 點(diǎn)擊按鈕 
  3.    obtn[i].onclick = function(){ 
  4.     for(var j = 0; j<obtn.length; j++){ 
  5.         // 去掉所有按鈕的class名。 
  6.          obtn[j].className = ""
  7.       } 
  8.          // 給當(dāng)前點(diǎn)擊的這個(gè)按鈕加上class名是on 
  9.          this.className = "on"

四、按鈕當(dāng)前的索引:

我們需要定義按鈕當(dāng)前的索引,點(diǎn)擊第幾個(gè)按鈕就把對(duì)應(yīng)索引的第幾個(gè)內(nèi)容展示出來(lái)。

代碼如下:

  1. obtn[i].index = i; 

當(dāng)i=0時(shí),btns[0].index就是0;

當(dāng)i=1時(shí),btns[0].index就是1;

當(dāng)i=0時(shí),btns[2].index就是2。

五、展示對(duì)應(yīng)索引的內(nèi)容區(qū)域:

1. 我們需要先把所有內(nèi)容區(qū)域都隱藏,所以我們使用for循環(huán)來(lái)寫(xiě)。

2. 把所有內(nèi)容區(qū)域div的class名去掉就可以了。

3. 把當(dāng)前索引對(duì)應(yīng)的內(nèi)容區(qū)域展示出來(lái),只需要把class名active加上就可了,active的樣式我們?cè)谏厦嬉呀?jīng)寫(xiě)過(guò)了。

代碼如下:

  1. //隱藏所有內(nèi)容區(qū)域。 
  2. for(var j = 0; j<ocon.length; j++){ 
  3. ocon[j].className = ''
  4. //當(dāng)前索引對(duì)應(yīng)的內(nèi)容展示出來(lái)。 
  5. ocon[this.index].className = 'active'

六、代碼優(yōu)化:

我們發(fā)現(xiàn)按鈕的長(zhǎng)度(obtn.length)和內(nèi)容的長(zhǎng)度(ocon.length)是一樣的,上面我們是用兩個(gè)for循環(huán)來(lái)寫(xiě),其實(shí)我們可以把代碼優(yōu)化下,改成用一個(gè)for循環(huán)就可以了。代碼如下:

  1. for(var j = 0; j<obtn.length; j++){ 
  2. // 去掉所有按鈕的class名。 
  3. obtn[j].className = ""
  4.    //隱藏所有內(nèi)容區(qū)域。 
  5.    ocon[j].className = ''

七、完整代碼如下:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4.     <meta charset="UTF-8"> 
  5.     <title>tab切換</title> 
  6.     <style> 
  7.         .on{ 
  8.             /* 讓class名是on的元素,文字變成紅色 */ 
  9.             color: red; 
  10.         } 
  11.         #con div{ 
  12.             width: 200px; 
  13.             height: 200px; 
  14.             border:10px solid orange; 
  15.             /* 讓內(nèi)容區(qū)域都隱藏起來(lái) */ 
  16.             display: none; 
  17.         } 
  18.         #con .active{ 
  19.             /* 讓class名是active的元素顯示出來(lái) */ 
  20.             display: block; 
  21.         } 
  22.     </style> 
  23. </head> 
  24. <body> 
  25.     <div id="btn"> 
  26.         <button class="on">標(biāo)題1</button> 
  27.         <button>標(biāo)題2</button> 
  28.         <button>標(biāo)題3</button> 
  29.     </div> 
  30.     <div id="con"> 
  31.         <div class="active">內(nèi)容1</div> 
  32.         <div>內(nèi)容2</div> 
  33.         <div>內(nèi)容3</div> 
  34.     </div> 
  35.     <script> 
  36.         //獲取到id名是btn的元素。 
  37.         var btn = document.getElementById("btn"); 
  38.         //獲取到btn里面標(biāo)簽名是button的元素,也就是獲取到3個(gè)按鈕。 
  39.         var obtn = btn.getElementsByTagName("button"); 
  40.         //獲取到id名是con的元素。 
  41.         var con = document.getElementById("con"); 
  42.         //獲取到con里面標(biāo)簽名是div的元素,也就是獲取到3個(gè)內(nèi)容。 
  43.         var ocon = con.getElementsByTagName("div"); 
  44.          
  45.          
  46.         for(var i = 0; i < obtn.length; i++){ 
  47.             //給每個(gè)按鈕定義了一個(gè)index屬性,這個(gè)index是屬于obtn[i]的屬性和方法。 
  48.             obtn[i].index = i; 
  49.             // 點(diǎn)擊按鈕 
  50.             obtn[i].onclick = function(){ 
  51.                 for(var j = 0; j<obtn.length; j++){ 
  52.                     // 去掉所有按鈕的class名。 
  53.                     obtn[j].className = ""
  54.                     //隱藏所有內(nèi)容區(qū)域。 
  55.                     ocon[j].className = ''
  56.                 } 
  57.                 // 給當(dāng)前點(diǎn)擊的這個(gè)按鈕加上class名是on 
  58.                 this.className = "on"
  59.                  
  60.                 //當(dāng)前索引對(duì)應(yīng)的內(nèi)容展示出來(lái)。 
  61.                 ocon[this.index].className = 'active'
  62.             } 
  63.              
  64.         } 
  65.     </script> 
  66. </body> 
  67. </html> 

效果圖:

文章“【W(wǎng)eb前端基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)網(wǎng)頁(yè)中常見(jiàn)的切換效果”已幫助

>>本文地址:http://www.jecan.cn/zhuanye/2020/61387.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME

主站蜘蛛池模板: 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 湖北省煤炭供应链综合服务平台 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 众能联合-提供高空车_升降机_吊车_挖机等一站工程设备租赁 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 滁州高低温冲击试验箱厂家_安徽高低温试验箱价格|安徽希尔伯特 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 智能气瓶柜(大型气瓶储存柜)百科| 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 |