jQuery结合CSS制作漂亮的select下拉菜单


Posted in Javascript onMay 03, 2015

我们在进行表单设计时,可能要用到select下拉选项控件,遗憾的是,IE浏览器默认的select控件外观非常丑陋,而且不能用样式来控制,不能在选项中添加图片等信息。今天我将通过实例来讲解如何用CSS和jQuery来制作漂亮的下拉选项菜单。

XHTML

<div id="dropdown"> 
  <p>请选择城市</p> 
  <ul> 
    <li><a href="#">长沙</a></li> 
    <li><a href="#">北京</a></li> 
    <li><a href="#">南京</a></li> 
    <li><a href="#">堪培拉</a></li> 
    <li><a href="#">多伦多</a></li> 
  </ul> 
</div>

可以看出,我们使用div来替换下拉选项控件原生的select标签。
CSS

#dropdown{width:186px; margin:80px auto; position:relative} 
#dropdown p{width:150px; height:24px; line-height:24px; padding-left:4px; padding-right:30px; 
border:1px solid #a9c9e2; background:#e8f5fe url(arrow.gif) no-repeat right 4px; 
color:#807a62; cursor:pointer} 
#dropdown ul{width:184px; background:#e8f5fe; margin-top:2px; border:1px solid #a9c9e2; 
position:absolute; display:none} 
#dropdown ul li{height:24px; line-height:24px; text-indent:10px} 
#dropdown ul li a{display:block; height:24px; color:#807a62; text-decoration:none} 
#dropdown ul li a:hover{background:#c6dbfc; color:#369}

样式不要多讲,你可以修改CSS中的背景色和字体颜色,甚至其他任意定义的样式。有一个下拉箭头的小图标,已经打包在附件里了。
jQuery
首先,当单击“请选择城市”时,判断下拉的层“ul”是否处于显示状态,如果是则隐藏下拉选项,否则则打开(下滑)下拉选项

$("#dropdown p").click(function(){ 
  var ul = $("#dropdown ul"); 
  if(ul.css("display")=="none"){ 
    ul.slideDown("fast"); 
  }else{ 
    ul.slideUp("fast"); 
  } 
});

然后,当单击下拉选项时,获取选项内容,将选项内容写入到<p>标签中,同时隐藏下拉选项。

$("#dropdown ul li a").click(function(){ 
  var txt = $(this).text(); 
  $("#dropdown p").html(txt); 
  $("#dropdown ul").hide(); 
});

这样就完成了一个简单的下拉选项的操作,是不是很简单啊。
当然,如果与后台交互,需要获取选项的value值,那就需要先定义XHTML。

<div id="dropdown"> 
  <p>请选择城市</p> 
  <ul> 
    <li><a href="#" rel="1">长沙</a></li> 
    <li><a href="#" rel="2">北京</a></li> 
    <li><a href="#" rel="3">南京</a></li> 
    <li><a href="#" rel="4">堪培拉</a></li> 
    <li><a href="#" rel="5">多伦多</a></li> 
  </ul> 
</div> 
<div id="result"></div>

从代码中可以看出,在给a标签加个rel属性,并赋值,就相当于select的option标签的value值。接下来就是通过jQuery获取rel值,请看代码:

$("#dropdown ul li a").click(function(){ 
  var txt = $(this).text(); 
  $("#dropdown p").html(txt); 
  var value = $(this).attr("rel"); 
  $("#dropdown ul").hide(); 
  $("#result").html("您选择了"+txt+",值为:"+value); 
});

这样就完成了一个完整的下拉选项的操作。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Array对象方法参考
Oct 03 Javascript
小议Function.apply() 之一------(函数的劫持与对象的复制)
Nov 30 Javascript
通过javascript获取iframe里的值示例代码
Jun 24 Javascript
常见的原始JS选择器使用方法总结
Apr 09 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
May 11 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
简单几步实现返回顶部效果
Dec 05 Javascript
详解AngularJS controller调用factory
May 19 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
vuex的module模块用法示例
Nov 12 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
基于Vue 撸一个指令实现拖拽功能
Oct 09 Javascript
jQuery实现的向下图文信息滚动效果
May 03 #Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
May 03 #Javascript
JQuery页面地址处理插件jqURL详解
May 03 #Javascript
jQuery的animate函数实现图文切换动画效果
May 03 #Javascript
php+ajax+jquery实现点击加载更多内容
May 03 #Javascript
jquery插件hiAlert实现网页对话框美化
May 03 #Javascript
javascript结合canvas实现图片旋转效果
May 03 #Javascript
You might like
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
详解Vue 换肤方案验证
2019/08/28 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
django2 快速安装指南分享
2018/01/05 Python
详解Python self 参数
2019/08/30 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
大学生应聘导游自荐信
2014/06/02 职场文书
护林员个人总结
2015/03/04 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript