一、需要掌握的知识
- html无序列表的知识
- css一些简单样式的设置
- display???
- cursor???
- 怎么获取元素???querySelectorAll
- for循环
- 设置自定义属性???setAttribute???
- 排他思想
二、思路
1.阐述
第一步当然是html骨架,css样式渲染,这些就一笔带过了,主要js的一些理解,第二步,写js语法,先是获取元素,然后遍历能够给每一个按钮添加事件,然后就是用排他思想了,把其他点击过的按钮颜色给消除掉,要不然都是pink,最后再把点击那个按钮的颜色赋予pink,然后就是给每一个标题按钮设置自定义属性,为什么呢?因为要让点击的那个按钮和下面的文本框一对一对应,设置的时候要放在点击事件外面,得到自定义属性的时候放在里面,千万不要忘了,要不然都是bug,然后还是用排他思想,把其他模块的文本隐藏,只有点击那个模块标题按钮的时候,对应的文本才显示,把块元素赋予给那给
代码如下(示例):
<style>
*{
padding: 0;
margin: 0;
}
li{
list-style: none;
}
.tab{
width: 600px;
height: 50px;
line-height: 50px;
border: 1px solid black;
background-color: yellow;
}
.tab li{
float: left;
padding: 0 20px;
cursor: pointer;
}
.pink{
background-color: pink;
}
.item{
display: none;
}
</style>
</head>
<body>
<div class="tab">
<ul>
<li class="pink">精选</li>
<li>电器区域</li>
<li>水果区域</li>
<li>文具区域</li>
</ul>
</div>
<div class="tabitems">
<div class="item" style="display:block;">打折活动</div>
<div class="item">笔记本电脑</div>
<div class="item">苹果梨子</div>
<div class="item">钢笔水彩笔</div>
</div>
<script>
var tab=document.querySelector('.tab');
var lis=tab.querySelectorAll('li');
var items=document.querySelectorAll('.item');
for(var i=0;i<lis.length;i++){
lis[i].setAttribute('index',i);
lis[i].onclick=function(){
for(var i=0;i<lis.length;i++){
lis[i].className='';
}
this.className='pink';
var index=this.getAttribute('index');
for(var i=0;i<items.length;i++){
items[i].style.display='none';
}
items[index].style.display='block';
}
}
</script>
2.运行截图
总结
多敲代码,多敲代码
每天发现一个不足之处,每天学习一个知识点,进步还会远吗
版权声明:本文为weixin_51983027原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。