js利用tab键切换当前页面_JavaScript实现Tab栏切换

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。

以下是正文。

京东网页上,可以看到下面这种tab栏的切换:

我们把模型抽象出来,实现一下。

举例引入:鼠标悬停时,current元素的背景变色

本段我们先举一个例子,因为这里用到了排他思想(先干掉 all,然后保留我一个)。对于理解tab切换,很有帮助。

完整的代码实现:

button {

margin: 10px;

width: 100px;

height: 40px;

cursor: pointer;

}

.current {

background-color: red;

}

按钮1

按钮2

按钮3

按钮4

按钮5

//需求:鼠标放到哪个button上,改button变成黄色背景(添加类)

var btnArr = document.getElementsByTagName("button");

//绑定事件

for(var i=0;i

btnArr[i].onmouseover = function () {

//【重要】排他思想:先把所有按钮的className设置为空,然后把我(this)这个按钮的className设置为current

//排他思想和for循环连用

for(var j=0;j

btnArr[j].className = "";

}

this.className = "current"; //【重要】核心代码

}

}

//鼠标离开current时,还原背景色

for(var i=0;i

btnArr[i].onmouseout = function () { //鼠标离开任何一个按钮时,就把按钮的背景色还原

this.className = "";

}

}

代码解释:

鼠标悬停时,current栏变色,这里用到了排他思想:先把所有按钮的className设置为空,然后把我(this)这个按钮的className设置为current,就可以达到变色的效果。核心代码是:

//排他思想:先把所有按钮的className设置为空,然后把我(this)这个按钮的className设置为current

//排他思想和for循环连用

for(var j=0;j

btnArr[j].className = "";

}

this.className = "current";

实现的效果如下:

tab切换:初步的代码

代码如下:

* {

padding: 0;

margin: 0;

}

.box {

width: 500px;

height: 200px;

border: 1px solid #ccc;

margin: 50px auto;

overflow: hidden;

}

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值