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 相关文章推荐
jquery与prototype框架的详细对比
Nov 21 Javascript
使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)
May 06 Javascript
按钮接受回车事件的三种实现方法
Jun 06 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
Oct 21 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
javascript实现文本框标签验证的实例代码
Oct 14 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 08 Javascript
Vue-Cli项目优化操作的实现
Oct 27 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 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类包含的七种语法说明
2015/06/04 PHP
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
python数据结构之图的实现方法
2015/07/08 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
Python闭包思想与用法浅析
2018/12/27 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python游戏开发的五个案例分享
2020/03/09 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
挪威户外活动服装和装备购物网站:Bergfreunde挪威
2016/10/20 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
中间件分为哪几类
2016/09/18 面试题
小学清明节活动方案
2014/03/08 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
党员民主评议自我评价
2014/10/20 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android