使用css+js实现select横向显示子菜单

效果

思路

<ul>标签模拟,jscss处理显示和赋值

实现

html 部分
<input id="groupBtn" type="button" value="A集团"/>
 <ul id="groupName">
	<li><a href="javascript:;">A集团</a></li>
	<li><a href="javascript:;">B集团</a></li>
	<li><a href="javascript:;">C集团</a></li>
	<li><a href="javascript:;">D集团</a></li>
 </ul>
复制代码
CSS 部分
#groupName{
   	margin-left:100px;
   	list-style:none; //去除列表项的样式
   	width:350px;
   	display:none;  //默认隐藏
   }
#groupBtn{
   	margin:10px 0 0 100px;
   	border:none;	//去除按钮的默认样式
   	outline:none; //同上
   	background:#fff;
   	font-size:20;
   }
   ul li {
   	float: left;  //横向排列
   	text-align:center
     }
   li a{
   	display:inline-block;
   	width:80px;
   	height:30px;
   	text-decoration:none; //去除<a/>标签的下划线
   	color:#000;
   }
   li a:hover{
   	background-color:#dfdfdf; //鼠标靠近选择背景变色
   }
   
复制代码
JavaScript 部分
    var groupBtn=document.getElementById('groupBtn');
	var groupName=document.getElementById('groupName');
	var groupNames=groupName.children;
	groupBtn.onfocus=function(){
		groupName.style.display='block';
	}
	groupBtn.onblur=function(){
		setTimeout(function(){
			groupName.style.display='none';
		},200)
	}
	//模拟option点击事件
	for(var i=0;i<groupNames.length;i++){
		groupNames[i].onclick=function(){
			groupBtn.value=this.innerText;
		}
	}
复制代码

可直接运行 HTML Demo

<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <style>
	#groupName{
		margin-left:100px;
		list-style:none;
		width:350px;
		display:none;
	}
	#groupBtn{
		margin:10px 0 0 100px;
		border:none;
		outline:none;
		background:#fff;
		font-size:20;
	}
	ul li {
		float: left;
		text-align:center
	}
	li a{
		display:inline-block;
		width:80px;
		height:30px;
		text-decoration:none;
		color:#000;
	}
	li a:hover{
		background-color:#dfdfdf;
	}
  </style>
 </head>
 <body>
 <input id="groupBtn" type="button" value="A集团"/>
 <ul id="groupName">
	<li><a href="javascript:;">A集团</a></li>
	<li><a href="javascript:;">B集团</a></li>
	<li><a href="javascript:;">C集团</a></li>
	<li><a href="javascript:;">D集团</a></li>
 </ul>
  <script type="text/javascript">
	var groupBtn=document.getElementById('groupBtn');
	var groupName=document.getElementById('groupName');
	var groupNames=groupName.children;
	groupBtn.onfocus=function(){
		groupName.style.display='block';
	}
	groupBtn.onblur=function(){
		setTimeout(function(){
			groupName.style.display='none';
		},200)
		
	}
	//模拟option点击事件
	for(var i=0;i<groupNames.length;i++){
		groupNames[i].onclick=function(){
			groupBtn.value=this.innerText;
		}
	}
  </script>
 </body>
</html>
复制代码

转载于:https://juejin.im/post/5c95cd126fb9a070f03cfe37

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为你介绍一下如何使用 HTML5、CSSJavaScript 实现横向时间轴特效。 首先,我们需要使用 HTML5 创建一个基本的网页结构,然后使用 CSS 样式来布局和设计时间轴。最后,我们使用 JavaScript 来动态地处理时间轴的交互效果。 以下是一个简单的 HTML 结构,用于创建横向时间轴: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Horizontal Timeline</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="timeline"> <div class="container"> <div class="timeline-item"> <div class="timeline-icon"></div> <div class="timeline-content"> <h2>Event Title</h2> <p>Event Description</p> <span class="date">Event Date</span> </div> </div> <!-- more timeline items --> </div> </div> <script src="script.js"></script> </body> </html> ``` 然后,我们需要使用 CSS 来布局和设计时间轴。在这个例中,我们使用 Flexbox 布局来实现时间轴条和时间轴项的排列。以下是基本的 CSS 样式: ```css .timeline { position: relative; margin: 0 auto; width: 80%; height: 100px; background-color: #f5f5f5; border-radius: 5px; } .container { display: flex; flex-direction: row; justify-content: space-between; position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 100%; height: 100%; overflow: hidden; } .timeline-item { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; width: 25%; height: 100%; transition: all 0.3s ease; } .timeline-item:hover { transform: scale(1.1); } .timeline-icon { width: 50px; height: 50px; background-color: #007bff; border-radius: 50%; } .timeline-content { text-align: center; padding: 20px; } .timeline-content h2 { margin-top: 0; } .date { display: block; font-size: 12px; font-style: italic; margin-top: 10px; } ``` 最后,我们需要使用 JavaScript 来动态地处理时间轴的交互效果。在这个例中,我们使用了 jQuery 库来处理鼠标悬停和点击事件。以下是基本的 JavaScript 代码: ```javascript $(document).ready(function() { $(".timeline-item").hover(function() { $(this).toggleClass("active"); }); $(".timeline-item").click(function() { $(".timeline-item").removeClass("selected"); $(this).addClass("selected"); }); }); ``` 以上就是使用 HTML5、CSSJavaScript 实现横向时间轴特效的基本步骤和代码示例。希望可以帮到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值