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

 更新时间:2015年05月03日 18:04:17   投稿:hebedich  
对于我来说,标准的HTML元素(Select)已经让我感到讨厌。它不能够正常的在IE浏览器上显示。还有一点就是他并不仅仅包含简单的文本。本实例将完全摒弃select元素,通过JQuery和CSS来构建DropDown元素。

我们在进行表单设计时,可能要用到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); 
}); 

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

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

相关文章

  • 精心挑选的15款优秀jQuery 本特效插件和教程

    精心挑选的15款优秀jQuery 本特效插件和教程

    今天这篇文章向大家分享15款精心挑选的优秀 jQuery 文本特效插件,都带有详细的使用教程。jQuery 是最流行和使用最广泛的 JavaScript 框架,它简化了 HTML 文档遍历,事件处理,动画以及Ajax交互,帮助 Web 开发人员更快速的实现各种精美的界面效果
    2012-08-08
  • jquery学习笔记 用jquery实现无刷新登录

    jquery学习笔记 用jquery实现无刷新登录

    为了防止以后好久不用生疏,在这里记下,供刚开始学习jquery的童鞋们借鉴,我也是刚开始学jquery,有什么写的不对的地方,还请大家指出错误,共同进步。
    2011-08-08
  • jquery插件制作 图片走廊 gallery

    jquery插件制作 图片走廊 gallery

    本文主要内容是讲解图片走廊-gallery的实现代码,需要的朋友可以参考下
    2012-08-08
  • jQuery+canvas实现的球体平抛及颜色动态变换效果

    jQuery+canvas实现的球体平抛及颜色动态变换效果

    这篇文章主要介绍了jQuery+canvas实现的球体平抛及颜色动态变换效果,通过jQuery结合html5的canvas技术调用时间函数实时进行数学运算,最终实现球体平抛及颜色动态变换的效果,需要的朋友可以参考下
    2016-01-01
  • JQuery动态添加和删除表格行的方法

    JQuery动态添加和删除表格行的方法

    这篇文章主要介绍了JQuery动态添加和删除表格行的方法,实例分析了jQuery中动态操作表格行的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • jquery 插件学习(五)

    jquery 插件学习(五)

    一般对外发布的插件都应该进行封装,封装的插件还应该符合规范,只有这样写的插件才具有推广价值,并得到其他用户的喜爱
    2012-08-08
  • jQuery实现圣诞节礼物传送(花式轮播)

    jQuery实现圣诞节礼物传送(花式轮播)

    本文主要对jQuery实现圣诞节礼物传送的方法、思路进行详细介绍,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • JQuery实现左右滚动菜单特效

    JQuery实现左右滚动菜单特效

    这篇文章主要介绍了jquery实现左右滑动菜单效果代码,涉及jquery鼠标事件相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • jQuery制作图片旋转效果

    jQuery制作图片旋转效果

    本文主要介绍了jQuery制作图片旋转效果的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • jquery提交form表单简单示例分享

    jquery提交form表单简单示例分享

    这篇文章主要介绍了jquery提交form表单示例,需要的朋友可以参考下
    2014-03-03

最新评论