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 相关文章推荐
node.js Web应用框架Express入门指南
May 28 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
使用js画图之圆、弧、扇形
Jan 12 Javascript
Javascript之Math对象详解
Jun 07 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
原生JS实现匀速图片轮播动画
Oct 18 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
微信小程序云开发如何使用npm安装依赖
May 18 Javascript
angular6开发steps步骤条组件
Jul 04 Javascript
微信jssdk踩坑之签名错误invalid signature
May 19 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
Dec 03 Javascript
详解Vue中的自定义指令
Dec 07 Vue.js
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通过cookies获取远程网页的指定代码
2013/06/25 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
python yield关键词案例测试
2019/10/15 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
艺术用品:Arteza
2018/11/25 全球购物
行政文秘岗位职责范本
2014/02/10 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
《四季》教学反思
2014/04/08 职场文书
银行业务授权委托书
2014/10/10 职场文书
护士个人年终总结
2015/02/13 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS