概述
就是实现一下 上面的一个 小demo 这个在实际的工作中用的还是比较多的
原理倒是很简单 就是 通过设置一个 激活状态的 (active) 样式 然后不停的切换到 用户点击的那个元素身上 其他的 元素 去掉 active 类名
其实通过原生来做照样也有两种方式
上面的是通过 ul li 标签进行铺开展示的
你可以把点击事件放到 ul 也可以放到li 身上 看你 自己喜欢了
不过还是建议绑定到 父元素上 通过事件委托的方式 来进行判断
第一种方式
choiceNumber(e) {
if (e.target.nodeName == "LI") {
var oLi = document.querySelectorAll('.user_list li');
for (var item of oLi) {
if (item.className == "active") {
item.className = "";
}
}
e.target.className = "active"
}
}
但是上面的那种方式 显然是有风险 直接将一个元素的类名 清空 如果还有其他的类名存在的话 这样显然是不合适的 同样 直接 .className =“类名” 把之前的类名也给覆盖乐
这个时候 我们要用第二种方式乐
choiceNumber(e) {
if (e.target.nodeName == "SPAN") {
var oLi = document.querySelectorAll('.user_list li');
for (var item of oLi) {
if(item.classList.contains('active')) {
item.classList.remove('active');
}
}
// 给父节点添加类名
e.target.classList.add('active');
}
}
通过classList 的方式 来进行 类名的增加和删除 效果就更好了 风险也降低乐不少 是吧
有些童鞋可能不太了解 classList 这个给个 权威的飞机票
关注我 持续更新前端知识
最后
以上就是清秀咖啡豆为你收集整理的原生js 实现一个标签样式之间的切换的全部内容,希望文章能够帮你解决原生js 实现一个标签样式之间的切换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复