1、效果展示

先来看一下实现的效果,做到心中有数:
未展开时默认select样式:
展开后select样式:

2、实现原理

select无非是将一些元素罗列在一块,起先将罗列起来的元素隐藏,当点击显示部分时,将隐藏部分显示,同时点击所排列元素的其中一个,更换显示信息后,将其余元素重新隐藏,根据这一原理我们来用div来模拟一下select框

3、代码实现

a、结构

首先,我们来完成相应的结构代码编写:
<div id="divselect" class="select_divselect"><cite><img src="data:images/yh_gsyh.png" /><label>工商银行</label></cite><ul style="display:none;"><li><a href=" "><img src="data:images/yh_zgyh.png" /><label>中国银行</label></a></li><li><a href=" "><img src="data:images/yh_zsyh.png" /><label>招商银行</label></a></li><li><a href=" "><img src="data:images/yh_jsyh.png" /><label>建设银行</label></a></li><li><a href=" "><img src="data:images/yh_gfyh.png" /><label>广发银行</label></a></li><li><a href=" "><img src="data: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)

这样我们所需要的功能就实现了啊,快点来试试看吧...

积跬步,聚小流------div模拟select,让select美美哒相关推荐

  1. 积跬步,聚小流------html知识大纲归纳总结

    习惯于从熟悉的地方入手的我,每要开始整理学习新东西之前,喜欢把熟悉的相关知识再温习一遍,既是总有所得的缘故,也是如此会将斗志燃到最烈.我总感觉这是病,只是不愿治.... 这次的前端整理,便直接从htm ...

  2. 积跬步,聚小流------ps有用小技巧,改变png图标颜色

    积跬步,聚小流------ps有用小技巧,改变png图标颜色 *  实现效果: 原图:  改动后: *  实现目的: 满足为实现不同界面色彩搭配改动png图标的颜色 *  实现方法: 1.打开Phot ...

  3. 积跬步以至千里_《荀子》名句76则:不积跬步,无以至千里;不积小流,无以成江海...

    荀子(约公元前313年-公元前238年),名况,字卿,华夏族(汉族),战国末期赵国人 .著名思想家.文学家.政治家,时人尊称"荀卿".西汉时因避汉宣帝刘询讳,因"荀&qu ...

  4. 劝学:不积跬步,无以至千里,不积小流,无以成江海.

    领略古人智慧. 不积跬步,无以至千里,不积小流,无以成江海.骐骥一跃,不能十步,驽马十驾,功在不舍.--<荀子·劝学>

  5. 【无标题】积跬步,以致千里;积小流,以成江海。

    1.自我介绍 大家好!我是来自西安工程大学计算机类的大一学生.上学期已经学习了C语言,但是发现自己的代码编程能力并没有多大提升,理论知识基础也还不够扎实.之前也在github中提交过代码.但是没有在C ...

  6. 积跬步以至千里_积跬步以至千里,聚小利终成大户

    声明:只做客观解读,不做主观预测,仅供参考,不作交易依据. ​择股看行业.择时看大盘.买点等共振.炒股就是控制风险. 大盘结束8连阳,跌破5日均线,30分钟形成顶背离,大盘正在走30分钟下跌一笔,舵手 ...

  7. 不积跬步无以至千里[转]

    不积跬步无以至千里<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> ...

  8. 不积跬步,无以致千里--首篇随笔

                ----不积跬步,无以至千里:不积小流,无以成江海---- 这会儿是2018年9月10日23点喽,一个崭新的周一夜晚.年初开始,就盘算着好好开个博客,记录生活的流水账,分享自己 ...

  9. 积跬步以至千里:美柚程序化合作交流会在厦举办

    随着互联网用户规模的增长,用户对互联网的依赖性越来越强.使用时长也逐步被拉长,移动互联网已经进入深耕期,移动营销也进入了一个充满变化的新时代.日前,美柚2018年中合作伙伴交流会在厦门成功举办,会上美 ...

最新文章

  1. java读取字节效率最高_Java-IO 字节流的使用和效率比较
  2. android去掉button默认的点击阴影
  3. Linux系统利用Crontab命令实现定时重启
  4. 使用ADO.NET访问数据库
  5. JAVA记录-SpringMVC scope属性的两种模式
  6. 二阶等差数列的性质及应用
  7. Exchange2010配置实验(二)满足先决条件安装Exchange2010
  8. python小人画爱心_用Python画一颗心、小人发射爱心(附源码)
  9. 20个短视频素材网站
  10. 联想笔记本那些有手写功能_可以在屏幕上自由手写联想Android平板电脑的哪些软件?如何设置联想平板电脑的手写笔迹...
  11. 简单BP神经网络分类手写数字识别0-9
  12. 解绑数字身份,解锁新玩法与构建方式(下)
  13. Linux、mysql密码初始化
  14. OsgEarth加载DEM(数字高程模型)
  15. awk,gawk调用shell,bash中的变量 笔记221106
  16. 某信息安全攻防大赛周周练考核(一) Writeup By 2ha0yuk7on
  17. application.yml图标不是绿色小叶子,文件格式不对,,没有Spring环境问题
  18. 少侠,看你骨骼惊奇,传你几招IT武林绝技,可好?
  19. 计算机组成和工作原理【详细讲解】
  20. 第二次尝试制作html5游戏

热门文章

  1. 微信公众平台系列-5关键字服务
  2. PeckShield:2019年度区块链安全复盘总结暨区块链十大安全事件
  3. 已经清空了垃圾箱怎样找回误删的文件
  4. php 字典树实现,数据结构之「字典树」
  5. cocos2d 高仿doodle jump 无源代码
  6. CSS3 霓虹灯文字
  7. 微信小程序开发笔记 进阶篇③——onfire.js事件订阅和发布在微信小程序中的使用
  8. 面试-Java【之】(revers)递归实现字符串倒序排列(详解)
  9. 【读书笔记】《终身成长》——热爱挑战相信努力
  10. matlab通信工具comm,MATLAB通信工具箱之comm.ErrorRate