html,css,原生js——实现Tab(tab)选项卡切换效果——立刻切换

html,css,原生js——实现Tab(tab)选项卡切换效果——马上切换

1.Demo展示:
  • onmuseover触发前:
    Alt
  • onmouseover触发时:
    Alt描述
2 . Html布局:

	<div class="wrap">
		<div class="container-top" id="list">
			<ul>
				<li><a href="">论坛</a></li>
				<li><a href="">博客</a></li>
				<li><a href="">交流</a></li>
				<li><a href="">社区</a></li>
				<li><a href="">反馈</a></li>
			</ul>
		</div>
		<div class="container-bottom" id="item">
			<div class="con">
				<ul>
					<li><a href="#">论坛A</a></li>
					<li><a href="#">论坛B</a></li>
					<li><a href="#">论坛C</a></li>
					<li><a href="#">论坛D</a></li>
				</ul>
			</div>
			<div class="con">
				<ul>
					<li><a href="#">博客A</a></li>
					<li><a href="#">博客B</a></li>
					<li><a href="#">博客C</a></li>
					<li><a href="#">博客D</a></li>
				</ul>
			</div>
			<div class="con">
				<ul>
					<li><a href="#">交流A</a></li>
					<li><a href="#">交流B</a></li>
					<li><a href="#">交流C</a></li>
					<li><a href="#">交流D</a></li>
				</ul>
			</div>
			<div class="con">
				<ul>
					<li><a href="#">社区A</a></li>
					<li><a href="#">社区B</a></li>
					<li><a href="#">社区C</a></li>
					<li><a href="#">社区D</a></li>
				</ul>
			</div>
			<div class="con">
				<ul>
					<li><a href="#">反馈A</a></li>
					<li><a href="#">反馈B</a></li>
					<li><a href="#">反馈C</a></li>
					<li><a href="#">反馈D</a></li>
				</ul>
			</div>
		</div>
	</div>
	
3. css样式表:

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

	a{
		color:#fff;
		font-size:13px;
		display:block;
	}

	a:hover{
		color:#ccc;
	}

  	.wrap{
		margin:60px auto;
		width:250px;
		height:auto;
	}
	
	.container-top{
		height:30px;
	}

	.container-bottom{
		height:60px;
		overflow:hidden;
	}
	
	.container-top ul{
		height:30px;
	}

	.container-top ul li{
		float:left;
		width:50px;
		height:30px;
		line-height:30px;
		text-align:center;
		background-color:#ccc;
	}
	
	.container-bottom ul{
		height:60px;
		background-image:linear-gradient(to right,#FF00FF,#E066FF);
	}

	.container-bottom ul li{
		width:125px;
		height:30px;
		line-height:30px;
		float:left;
		text-align:center;
		background:none;
	}

	.select{
		background-image:linear-gradient(to right,dimgray,gray);
	}
	
4. 原生js代码:

	//封装通过id来查找元素的函数,不需要引入jquery库;
	function $(id){
		return typeof id === "string"?document.getElementById(id):document;
	}
	
	window.onload = function(){
		//获取5个标题名;
		var items = $("list").getElementsByTagName("li");
		//获取5个内容盒子;
		var	divs = $("item").getElementsByTagName("div");
		if(items.length != divs.length){
			return;
		}
		
		//循环遍历标题名和内容盒子;
		for(var i = 0,len = items.length; i < len; i++){
			items[i].id = i;
			items[i].onmouseover = function(){
				for(var j = 0,len = items.length; j < len; j++){
					items[j].className = "";
					divs[j].style.display = "none";
				}
				this.className = "select";	
				divs[this.id].style.display = "block";
			}
		}
	}

注:
1.自己写的函数,尽量做到把其封装起来,让其能够复用
2.如要实现点击切换把" mouseover " 改为 " onclick "即可
3.涉及到循环遍历数组的时候,为了避免进入死循环,尽量使用以下方式:

	for(var i = 0,len = items.length; i < len; i++){ 
		代码块;
	}

而不是这样:

	for(var i = 0; i < items.length; i++){ 
		代码块;
	}

如要实现延迟切换效果,请查看:link(https://blog.csdn.net/qq_43495629/article/details/87270244)
如要实现自动切换效果,请查看:link(https://blog.csdn.net/qq_43495629/article/details/87271432).
~如遇错误,欢迎指正;

  • 结束语…………………………福利时间到………………………………

    大家同为程序员,在这里给大家真诚的送上福利。

    福利链接点击这里!

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我来为您详细说明如何使用原生 HTML 和 JavaScript 创建选项卡Tab切换)。 首先,我们需要在 HTML 中创建选项卡的结构。我们可以使用 ul 和 li 标签来创建选项卡的导航栏,使用 div 标签来创建选项卡的内容: ```html <div class="tab"> <ul class="tab-nav"> <li class="active"><a href="#tab-1">Tab 1</a></li> <li><a href="#tab-2">Tab 2</a></li> <li><a href="#tab-3">Tab 3</a></li> </ul> <div class="tab-content"> <div id="tab-1" class="tab-pane active">Content for tab 1 goes here.</div> <div id="tab-2" class="tab-pane">Content for tab 2 goes here.</div> <div id="tab-3" class="tab-pane">Content for tab 3 goes here.</div> </div> </div> ``` 在上面的示例中,我们使用了一个包含三个选项卡的 div 元素。每个选项卡都有一个对应的 ID 和相应的内容。 接下来,我们需要使用 JavaScript 来实现选项卡切换功能。我们可以使用以下代码: ```javascript const tabs = document.querySelectorAll('.tab-nav li'); const tabContent = document.querySelectorAll('.tab-content .tab-pane'); tabs.forEach((tab, index) => { tab.addEventListener('click', () => { tabs.forEach(tab => tab.classList.remove('active')); tab.classList.add('active'); tabContent.forEach(content => content.classList.remove('active')); tabContent[index].classList.add('active'); }); }); ``` 在上面的示例中,我们首先使用 querySelectorAll 函数获取选项卡的导航栏和内容。然后,我们使用 forEach 函数为每个选项卡添加一个点击事件监听器。当用户点击选项卡时,我们将为当前选项卡添加一个“active”类,并将其它选项卡的“active”类移除。我们还将为当前选项卡的内容添加一个“active”类,以显示相应的内容。 最后,我们需要为选项卡添加一些 CSS 样式来美化它们: ```css .tab { display: flex; flex-direction: column; border: 1px solid #ccc; border-radius: 5px; overflow: hidden; } .tab-nav { display: flex; list-style: none; margin: 0; padding: 0; } .tab-nav li { flex: 1; text-align: center; } .tab-nav li a { display: block; padding: 10px 20px; text-decoration: none; color: #333; } .tab-nav li.active a { color: #fff; background-color: #007acc; } .tab-content { padding: 20px; } .tab-content .tab-pane { display: none; } .tab-content .tab-pane.active { display: block; } ``` 在上面的示例中,我们使用了 flexbox 布局和一些基本样式来创建选项卡。我们还添加了一些样式来突出显示当前选项卡和内容。 通过以上步骤,我们就成功地创建了一个原生 HTML 和 JavaScript 的选项卡

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

男孩子小杨

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值