原生js手风琴案例,以及jquery方式

首先:
     先看看手风琴是什么样子的考虑一下如何实现手风琴的效果,
接下来:
     我们来说一下手风琴的实现原理:
       1.有自己配置好的一对标签div和span
       2.点击一对div时,显示span
       3.将其他的div中的span标签隐藏,只显示点击时的div中的span
       4.看到这里恭喜你已经了解了手风琴的具体操作啦,我们来看看实际代码吧

1.图片演示

在这里插入图片描述

2.jQuery方式及实现原理

实现原理:
    jquery的实现方式:首先先获取到点击元素的this,将点击的this对象的兄弟级下拉,其他的兄弟级收回

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="jQuery/jquery-3.6.0.min.js"></script>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			ul{
				width: 200px;
				text-align: center;
				list-style: none;
			}
			li{
				border: 1px solid #999;
				background-color: #e0ecff;
			}
			span{
				display: block;
				height: 20px;
				line-height: 20px;
				font-size: 16px;
				border-bottom: 1px solid #ccc;
				cursor: pointer;
			}
			div{
				height: 200px;
				background-color: #fff;
				display: none;
			}
		</style>
	</head>
	<body>
		<ul>
			<li>
				<span>标题1</span>
				<div>我是弹出来的div1</div>
			</li>
			<li>
				<span>标题2</span>
				<div>我是弹出来的div2</div>
			</li>
			<li>
				<span>标题3</span>
				<div>我是弹出来的div3</div>
			</li>
			<li>
				<span>标题4</span>
				<div>我是弹出来的div4</div>
			</li>
		</ul>
		
		<script>
			$("span").click(function(){
				//next() --- 获取当前元素的下一个兄弟元素
				$(this).next().slideDown(1000);
				$(this).parent().siblings().children("div").slideUp(1000);
			})
			
		</script>
	</body>
</html>

3.原生js的实现原理及代码

实现原理:
    点击那个父级元素让那个父级元素的第一个子级元素显示,其他的隐藏.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="jQuery/jquery-3.6.0.min.js"></script>
		<style type="text/css">
			* {
				padding: 0;
				margin: 0;
			}
			ul{
				width: 200px;
				text-align: center;
				list-style: none;
			}
			li{
				border: 1px solid #999;
				background-color: #e0ecff;
			}
			span{
				display: block;
				height: 20px;
				line-height: 20px;
				font-size: 16px;
				border-bottom: 1px solid #ccc;
				cursor: pointer;
			}
			div{
				height: 200px;
				background-color: #fff;
				display: none;
			}
		</style>
	</head>
	<body>
		<ul>
			<li>
				<span>标题1</span>
				<div>我是弹出来的div1</div>
			</li>
			<li>
				<span>标题2</span>
				<div>我是弹出来的div2</div>
			</li>
			<li>
				<span>标题3</span>
				<div>我是弹出来的div3</div>
			</li>
			<li>
				<span>标题4</span>
				<div>我是弹出来的div4</div>
			</li>
		</ul>
		
		<script>
			 var spanobj =document.getElementsByTagName("span");
			 for(var i=0;i<spanobj.length;i++){
			 	spanobj[i].onclick = function(){
			 		for(var j=0;j<spanobj.length;j++){
			 		//nextElementSibling 获取父级中的第一个子元素
						spanobj[j].nextElementSibling.style.display = "none"
						this.nextElementSibling.style.display = "block"
					}
				}
			}
		</script>
	</body>
</html>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值