JavaScript实现多层颜色选项卡嵌套


Posted in Javascript onSeptember 21, 2020

本文实例为大家分享了JavaScript实现多层颜色选项卡嵌套的具体代码,供大家参考,具体内容如下

这是学JavaScript时候的一个作业,如果没有思路还是挺有难度的,但是思路正确的话一步一步来就很简单做出来了。

实现效果

JavaScript实现多层颜色选项卡嵌套

HTML部分代码

<div class="box" id="box">
 <ul id="leftBox">
  <li class="active">a</li>
  <li>b</li>
  <li>c</li>
  <li>d</li>
 </ul>
 <div id="rightBox">
  <div id="rightBox1" class="active">
  <a href="#" >a1</a>
  <ul class="tabUl">
   <li class="hover">a1</li>
   <li>a2</li>
   <li>a3</li>
   <li>a4</li>
  </ul>
  </div>
  <div id="rightBox2">
  <a href="#" >b1</a>
  <ul class="tabUl">
   <li class="hover">b1</li>
   <li>b2</li>
   <li>b3</li>
   <li>b4</li>
  </ul>
  </div>
  <div id="rightBox3">
  <a href="#" >c1</a>
  <ul class="tabUl">
   <li class="hover">c1</li>
   <li>c2</li>
   <li>c3</li>
   <li>c4</li>
   <li>c5</li>
   <li>c6</li>
  </ul>
  </div>
  <div id="rightBox4">
  <a href="#" >d1</a>
  <ul class="tabUl">
   <li class="hover">d1</li>
   <li>d2</li>
   <li>d3</li>
   <li>d4</li>
  </ul>
  </div>
 </div>
</div>

css部分代码

<style>
 * {
  margin: 0px;
  padding: 0px;
  list-style: none;
  text-decoration: none;
 }

 .box {
  width: 800px;
  border: 1px solid #000000;
  margin: 20px auto;
  background: blue;
 }

 .box:after {
  content: "";
  display: block;
  clear: both;
 }

 #leftBox {
  float: left
 }

 #rightBox {
  float: left;
 }

 #leftBox li {
  width: 200px;
  height: 89px;
  background: red;
  margin-bottom: 2px;
  color: #fff;
  font: 50px/89px "黑体";
  text-align: center;
 }

 #rightBox div {
  display: none;
 }

 #rightBox .active {
  display: block;
 }

 #rightBox a {
  display: block;
  width: 600px;
  height: 325px;
  background: #0F0;
  font-size: 100px;
  color: #000;
  text-align: center;
  text-decoration: none;
  line-height: 360px;
 }

 .tabUl {
  display: table;
  width: 100%;
 }

 .tabUl li {
  display: table-cell;
  background: #909;
  color: #fff;
  font-size: 20px;
  text-align: center;
  height: 40px;
  line-height: 40px;
  border-right: 2px solid #03C;
  cursor: pointer;
 }

 .tabUl li.hover {
  background: #fff;
  color: #000;
 }

 #leftBox .active {
  background: yellow;
  color: #000;
 }
</style>

JavaScript实现代码

思路:鼠标移入左边的每个li后,都会改变他的颜色,所以只需要改变class名,同时右边也会显示对于的div,有对应的话一般都会用到自定义索引值和this…

<script>
 /* 
 点击左边的li后,所点击li加上class名,其它清除所有,然后右边对应索引值的div也加上class=active,所以要用到this

  */

 //获取元素
 var lUl = document.getElementById('leftBox')
 var rUl = document.getElementById('rightBox')
 var lLi = lUl.getElementsByTagName('li')
 var oDiv = rUl.getElementsByTagName('div')

 //改变左边样式
 for (var i = 0; i < lLi.length; i++) {
  //自定义索引
  lLi[i].index = i
  lLi[i].onmouseenter = function () {
  //清空所有classname
  for (var j = 0; j < lLi.length; j++) {
   lLi[j].className = ''
   oDiv[j].className = ''
  }
  //给相应的li添加上classname
  this.className = 'active'
  oDiv[this.index].className = 'active'
  }
 }


 //右边
 for (var k = 0; k < oDiv.length; k++) {
  fn(oDiv[k])
 }
 function fn(parent) {
  //获取用到的元素
  var rLi = parent.getElementsByTagName('li')
  var oa = parent.getElementsByTagName('a')[0]
  for (var i = 0; i < rLi.length; i++) {
   rLi[i].onmouseenter = function(){
   for (j = 0; j < lLi.length; j++) {
    rLi[j].className = ''
   }
   this.className = 'hover'
   //把li标签中的文字传到a标签中
   oa.innerHTML = this.innerHTML
   }
  
  }
  
 }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
Jan 30 Javascript
JS字符串截取函数实例
Dec 27 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
Nov 25 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
Google 爬虫如何抓取 JavaScript 的内容
Apr 07 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
React优化子组件render的使用
May 12 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
JS实现无限轮播无倒退效果
Sep 21 #Javascript
js+canvas绘制图形验证码
Sep 21 #Javascript
vue中路由跳转不计入history的操作
Sep 21 #Javascript
JS实现放大镜效果
Sep 21 #Javascript
vue element ui validate 主动触发错误提示操作
Sep 21 #Javascript
Vue Element校验validate的实例
Sep 21 #Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 #Javascript
You might like
php设计模式之观察者模式的应用详解
2013/05/21 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
微信支付扫码支付php版
2016/07/22 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
python实现自动重启本程序的方法
2015/07/09 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
浅谈python可视化包Bokeh
2018/02/07 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
斯福泰克软件测试面试题
2015/02/16 面试题
留学推荐信写作指南
2014/01/25 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2014年度党员自我评议
2014/09/13 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
冰雪公主观后感
2015/06/16 职场文书
高三毕业感言
2015/07/30 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
SQL Server使用导出向导功能
2022/04/08 SQL Server
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python