jQuery下拉框实现

本文介绍了如何在项目中用jQuery替代select标签创建自定义样式的下拉框。通过使用ul并调整CSS样式,实现了下拉框的美化。特别提到,为了保持下拉内容不影响表格宽度,需要对相关元素进行绝对定位并设置宽度。
摘要由CSDN通过智能技术生成

    昨天做项目的时候发现用select标签写下拉框样式比较丑,和设计师设计的有很大出入,所以就用jQuery实现了一个下拉框,可以修改其样式。


<!--这是HTML代码-->
<!DOCTYPE html>
<html>
<head>

<script src="https://code.jquery.com/jquery-3.1.0.js"></script><!--引入jQuery-->
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">


  <title>JS Bin</title>
</head>
<body>
  <div>
    <div id="main">
      <div id="content">内容一</div>
      <div id="tan"></div>
    </div>
    <div id="div">
      <ul id="ul">
        <li onclick="change(this)">内容一</li>
        <li onclick="change(this)">内容二</li>
        <li onclick="change(this)">内容三</li>
      </ul>
    </div>
</div>
</body>
</html>

在HTML中关键的就是用ul代替select,然后通过修改ul样式来修改下拉样式。


//这是css代码
#main,#ul{
  padding:0px;
  width:100px;
  list-style-type:none;  
  margin:0px;
  border:1px solid #ccc;
  box-shadow:0 0 3px #aaa;
}
#div{
  display:none;
}
#ul li:hover{
  background-color:#aaa;
}
#content,#tan{
  display:inline-block;
}
#tan{
  float:right;
}

css代码需要注意的就是倒三角的浮动,虽然在我写的例子中没有太大影响,但是如果你要居中并对齐下面内容,设置浮动是个很好的选择。

//这是js代码
$("#main").click(function(){
  if($("#div").css("display")=="none"){//判断下拉还是上拉
    $("#tan").text("▼");
    $("#div").slideDown();//设置下拉动画
  }else{
    $("#tan").text("▶");
    $("#div").slideUp();//设置上拉动画
  }}
)
function change(e){//把内容写入输入的div中
  var a=$(e).text();
  $("#content").text(a);
  if($("#div").css("display")!=="none"){
   $("#div").slideUp();
  }
}
//可以在https://jsbin.com/wirapejiwa/edit?html,css,js,console,output中看效果哦!

    最后应用时发现,如果需要下拉时。下拉框内容不影响表格宽度的话,就需要设定#div定位为绝对定位,再把.select > div的宽度设置下哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值