积跬步,聚小流------div模拟select,让select美美哒
来源:互联网 发布:php设计表格 编辑:程序博客网 时间:2024/06/09 21:25
1、效果展示
先来看一下实现的效果,做到心中有数:
未展开时默认select样式:
展开后select样式:
展开后select样式:
2、实现原理
select无非是将一些元素罗列在一块,起先将罗列起来的元素隐藏,当点击显示部分时,将隐藏部分显示,同时点击所排列元素的其中一个,更换显示信息后,将其余元素重新隐藏,根据这一原理我们来用div来模拟一下select框
3、代码实现
a、结构
首先,我们来完成相应的结构代码编写:
<div id="divselect" class="select_divselect"> <cite><img src="images/yh_gsyh.png" /><label>工商银行</label></cite> <ul style="display:none;"> <li><a href=" "><img src="images/yh_zgyh.png" /><label>中国银行</label></a></li> <li><a href=" "><img src="images/yh_zsyh.png" /><label>招商银行</label></a></li> <li><a href=" "><img src="images/yh_jsyh.png" /><label>建设银行</label></a></li> <li><a href=" "><img src="images/yh_gfyh.png" /><label>广发银行</label></a></li> <li><a href=" "><img src="images/yh_shyh.png" /><label>上海银行</label></a></li> </ul></div>这时候,我们来看下相应的实现效果:
b、样式控制
这时候我们来完善一下样式的美化,首先是一直显示的部分:
.select_divselect {width: 290px;height: 36px;padding: 2px 5px;border: 1px solid #999;border-radius: 10px;-moz-border-radius: 10px;-webkit-border-radius: 10px;position: relative;}
.select_divselect_noradius {/*这里加这个,是为了修改圆角的时候方便,但是代码同时会增多,会不会影响性能呢,还希望有大神解惑*/width: 290px;height: 36px;padding: 2px 5px;border: 1px solid #999;border-bottom: 0px;border-radius: 10px 10px 0 0;-moz-border-radius: 10px 10px 0 0;-webkit-border-radius: 10px 10px 0 0;position: relative;}.select_divselect cite,.select_divselect_noradius cite {display: block;width: 290px;height: 36px;line-height: 36px;background: url(../images/xjt.png) no-repeat right center;text-align: center;position: relative;}.select_divselect cite img,.select_divselect_noradius cite img {width: 30px;height: 30px;border: 0px;position: absolute;left: 20px;top: 3px;margin: 0px;}
然后美化,罗列元素的部分:
.select_divselect ul img,.select_divselect_noradius ul img {width: 30px;height: 30px;border: 0px;position: absolute;left: 25px;top: 5px;margin: 0px;}.select_divselect ul,.select_divselect_noradius ul {position: absolute;z-index: 99;width: 300px;border: 1px solid #999;left: 0px;background: #fff;/*border-radius: 10px;-moz-border-radius: 10px;-webkit-border-radius: 10px;*/top: 41px;height: 200px;overflow-x: hidden;overflow-y: scroll;}.select_divselect_noradius ul li,.select_divselect ul li {position: relative;text-align: center;line-height: 40px;border-bottom: 1px solid #ccc;}.select_divselect_noradius ul li a,.select_divselect ul li a {display:block;height:40px;color: #333;width: 290px;text-align: center;margin: 0px;text-decoration: none;}.select_divselect_noradius ul li a:hover,.select_divselect_noradius ul li a.yh_selected {color: #fff;background: #ff5205;text-decoration: none;}我在reset.css里面设置了ul { padding: 0px; margin: 0px; list-style: none}这里就不再重复添加了,这时候我们来看下加了样式后的效果:
这时候,我们还需要做的一件事情,就是讲罗列的地方隐藏起来:
.select_divselect ul {display:none;}
c、行为控制
;(function($){$.extend({'divselect':function(divselectid,inputselectid) {var inputselect = $(inputselectid);$(divselectid+" cite").click(function(event){var ul = $(divselectid+" ul");if(ul.css("display")=="none"){$("#divselect").addClass("select_divselect_noradius") .removeClass("select_divselect");ul.slideDown("fast");}else{ul.slideUp("fast");$("#divselect").addClass("select_divselect") .removeClass("select_divselect_noradius");}event.preventDefault();event.stopPropagation();});$(divselectid+" ul li a").click(function(event){//选取某一信息时$("#divselect").addClass("select_divselect") .removeClass("select_divselect_noradius");var txt = $(this).html();$(divselectid+" cite").html(txt);//这里可以进行操作,比方说加个隐藏域,后台获取隐藏域信息var value = $(this).addClass("yh_selected").parent().siblings().find("a").removeClass("yh_selected");//保证选中的变色$(divselectid+" ul").hide();event.preventDefault();event.stopPropagation();//防止冒泡});$(document).click(function(){$("#divselect").addClass("select_divselect") .removeClass("select_divselect_noradius");$(divselectid+" ul").hide();});}})})(jQuery)这样我们所需要的功能就实现了啊,快点来试试看吧...
1 1
- 积跬步,聚小流------div模拟select,让select美美哒
- DIV模拟select
- Div 模拟 Select Demo
- div 模拟select
- div 模拟select
- div模拟下拉框 select
- div模拟下拉框 select
- div模拟select下拉菜单
- input+div模拟select效果
- 用div和span模拟select控件
- Jquery实现div模拟Select控件
- DIV模拟select下拉菜单效
- DIV遮盖select元素(模拟disabled)
- 让 div 在 select或flash 之上
- 模拟select
- 模拟 SELECT
- 使用span或div模拟Select的水平滚动条
- 使用div+css模拟select功能与效果
- JSON浅总
- 匿名项目连载(四)--->评论说说
- Nagios
- Table is 'read only'
- 一个Oracle循环例子
- 积跬步,聚小流------div模拟select,让select美美哒
- 用Quartz处理定时执行的任务
- jdk中path和classpath的区别
- BW系列基础
- C# XML与Json之间相互转换实例详解
- 励精图治---Concurrency---如何创建多线程
- CocoaPods pod install/pod update更新慢
- hdu 素数环1016
- [LeedCode OJ]#121 Best Time to Buy and Sell Stock