【自制】ul、li模拟select效果

利用ul、li结合javascript模拟出selec的t效果,相比较html提供的原始select标签有以下好处:

1.使下拉选择框的可控性请更高,你尽可以按你想要的样式、大小随意制作出满足你需求的下拉选择框,而不是原始那种硬邦邦又难看的select。

2.如果有对select下的option添加事件的需求,那就极力推荐使用ul、li模拟select了,因为原始select下的option对js事件的支持效果并不好,存在严重的浏览器兼容问题,而ul下的li的js事件主流浏览器都支持的。

下面是本人自制的ul、li模拟select效果的demo,时间有限代码简陋,欢迎大家批评指正,有需要的可以直接copy代码。

<!doctype html>
<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>
	*{
		margin:0;
		padding:0;
		box-sizing:border-box;
	}
	#ul{
		margin-left:100px;
		list-style:none;
		width:150px;
		border:1px solid #000;
		display:none;
	}
	#ipt{
		margin:10px 0 0 100px;
	}
	li a{
		display:inline-block;
		width:100%;
		height:100%;
		text-decoration:none;
		color:#000;
	}
	li a:hover{
		background-color:blue;
	}
  </style>
 </head>
 <body>
 <input id="ipt" type="text" placeholder="点击测试"/>
 <ul id="ul">
	<li><a href="javascript:;">测试1</a></li>
	<li><a href="javascript:;">测试2</a></li>
	<li><a href="javascript:;">测试3</a></li>
	<li><a href="javascript:;">测试4</a></li>
	<li><a href="javascript:;">测试5</a></li>
	<li><a href="javascript:;">测试6</a></li>
 </ul>
  <script type="text/javascript">
	var ipt=document.getElementById('ipt');
	var ul=document.getElementById('ul');
	var lis=ul.children;
	ipt.οnfοcus=function(){
		ul.style.display='block';
	}
	ipt.οnblur=function(){
		setTimeout(function(){
			ul.style.display='none';
		},200)
		
	}
	//模拟option点击事件
	for(var i=0;i<lis.length;i++){
		lis[i].οnclick=function(){
			ipt.value=this.innerText;
		}
	}
  </script>
 </body>
</html>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值