博主信息
博文 36
粉丝 4
评论 3
访问量 39060
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
7.18 jQuery编写TBA选项卡
大灰狼的博客
原创
1117人浏览过

 jQuery编写TBA选项卡 

jQuery和原生js相比写更少的代码做更多的事情。大大减少了日常开发编写效率。

1.png

不管是用原生js 还是jQuery编写选项卡 业务流程思想是不变的。变化的只是代码格式。
上案例啦。代码有详细注解 

实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>7.18使用jquery改造原生js选项卡.html</title>
		<style type="text/css">
			*{margin: 0;padding: 0;}
			.tab-container{width: 500px; margin: 50px auto;}
			.tab-container li{list-style: none; }
			.tab-nav li{display: inline-block;font-weight: bold;padding: 6px 8px;}
			.tab-nav li:hover{background:#87CEEB;}
			.tab-nav ul .active{background: linear-gradient(#44aaff, #6a6aff); border-radius: 5px 5px 0 0;color: #FFFFFF;}
			.tab-content .detail{display: none;}
			.tab-content .active{display: block;}
			.tab-content{border: 1px solid #4682B4; padding: 10px;}
		</style>
	</head>
	<body>
		<div class="tab-container">
			<div class="tab-nav">
				<ul>
					<li data-index='1' class="active">热卖排行</li>
					<li data-index='2'>新品排行</li>
					<li data-index='3'>大神推荐</li>
				</ul>
			</div>
			<div class="tab-content">
				<div class="detail active" data-index='1'>
					<ul>
						<li>热卖的列表001</li>
						<li>热卖的列表002</li>
						<li>热卖的列表003</li>
						<li>热卖的列表004</li>
						<li>热卖的列表005</li>
						<li>热卖的列表006</li>
						<li>热卖的列表007</li>
						<li>热卖的列表008</li>
						<li>热卖的列表009</li>
						<li>热卖的列表010</li>
					</ul>
				</div>
				<div class="detail" data-index='2'>	
					<ul>
						<li>新品的列表001</li>
						<li>新品的列表002</li>
						<li>新品的列表003</li>
						<li>新品的列表004</li>
						<li>新品的列表005</li>
						<li>新品的列表006</li>
						<li>新品的列表007</li>
						<li>新品的列表008</li>
						<li>新品的列表009</li>
						<li>新品的列表010</li>
					</ul>
				</div>
				<div class="detail" data-index='3'>
					<ul>
						<li>大神推荐的列表001</li>
						<li>大神推荐的列表002</li>
						<li>大神推荐的列表003</li>
						<li>大神推荐的列表004</li>
						<li>大神推荐的列表005</li>
						<li>大神推荐的列表006</li>
						<li>大神推荐的列表007</li>
						<li>大神推荐的列表008</li>
						<li>大神推荐的列表009</li>
						<li>大神推荐的列表010</li>
					</ul>
				</div>
			</div>
		</div>
		<!--记得先加载外部jquery到页面-->
		<script src="jquery.js" type="text/javascript" charset="utf-8"></script>
		<!--因为博客不能上传文件 我在引入一个外部的jQuery 来支持博客预览效果-->
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
		<script type="text/javascript">
			//拿到tab菜单全部元素
			var navList=$('.tab-nav ul li');
			//拿到tab内容区全部容器
			var detail=$('.detail');

			//click鼠标点击切换 mouseover鼠标移入切换
			navList.on('mouseover',showDetail)
			
			function showDetail(ev){
				//遍历来设置tab菜单区的隐藏与显示 和原生js相比 关键词不又forEach简化位each 还有参数顺序变化了jq的索引在前面 当前参数在后面
				navList.each(function(index,li) {
					if (ev.target.tagName ==='LI') {
						//要使用jq的方法就要先把对象放到$()里面才行。不然报错。
						$(li).removeClass('active');
						$(ev.target).addClass('active');
					};
				});
				//设置内容显示区的显示与隐藏
				detail.each(function(index,det){
					if (ev.target.tagName==='LI') {
						$(det).removeClass('active');
					};
					//通过判断自定义data-index属性值来匹配应该显示哪一个内容容器
					if(det.dataset.index==ev.target.dataset.index){
						$(det).addClass('active');
					}
				});
			};
			
		</script>
	</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:选项卡功能强大, 但原理却非常的简单, 可以在有限的页面中, 显示更多的内容, 类似于分页的效果, 很常用的
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学