首页
CSS
JS
SEO
杂谈
.NET
PHP
数据库
手机
游戏
软件
服务器
架构
分类
搜索
小应用
导航
案例
标签
留言
基于jquery的用dl模拟实现可自定义样式的SELECT下拉列表(已封装)
分类:
Javascript
| 发布:
camnprbubuol
| 查看:
364
| 发表时间:2011/4/6
运行代码:
<!doctype html> <br/><html> <br/><head> <br/><FCK:meta charset="gbk" /> <br/><title>用dl模拟实现可自定义样式的SELECT下拉列表@Mr.Think</title> <br/><style> <br/>/*reset css*/ <br/>body{font-size:0.8em;letter-spacing:1px;font-family:\5fae\8f6f\96c5\9ed1;line-height:1.8em} <br/>div,h2,p,fieldset,legend,span,em,dl,dt,dd{margin:0;padding:0} <br/>input{font:12px/1.5 tahoma,arial,sans-serif;vertical-align:middle} <br/>h1{font-size:1em;font-weight:normal} <br/>h1 a{background:#047;padding:2px 3px;color:#fff;text-decoration:none} <br/>h1 a:hover{background:#a40000;color:#fff;text-decoration:underline} <br/>h3{color:#888;font-weight:bold;font-size:1em;margin:1em auto;position:relative} <br/>/*demo css*/ <br/>#demo{position:relative;width:500px;height:260px;border:1px solid #ccc} <br/>#demo dl.tips{margin:2px;padding:8px;background:#f2f2f2;line-height:24px} <br/>#demo dl.tips dt{font-size:14px;font-weight:bolder} <br/>#demo dl.tips dd{text-indent:24px} <br/>#demo .demo_b{top:180px;margin-left:-90px;z-index:888} <br/>#demo .demo_c{top:220px;margin-left:-60px;z-index:777} <br/><br/>.selectitem{position:absolute;top:140px;left:50%;margin-left:-120px;overflow:hidden;width:180px;height:30px;background:#dff0f0;font-size:14px;line-height:30px;filter:alpha(opacity:80);opacity:0.8;cursor:pointer;z-index:999} <br/>.selectitem dt,.selectitem dd{padding-left:28px;background:transparent url(upload/2012/3/201203232008361756.png) 30px 0 no-repeat} <br/>.selectitem dt.drop{background-position:0 -30px;} <br/>.selectitem dt.shrink{background-position:0 0} <br/>.selectitem dd.hover{background-color:#b6e2e2} <br/><br/>.selectitem dl .tag_news{background-position:0 -60px;color:#bd0000} <br/>.selectitem dl .tag_it{background-position:0 -90px;color:#0759E0} <br/>.selectitem dl .tag_reading{background-position:0 -120px;color:#409513} <br/>.selectitem dl .tag_interests{background-position:0 -150px;color:#EE7D0E} <br/>.selectitem dl .tag_career{background-position:0 -180px;color:#000382} <br/>.selectitem dl .tag_living{background-position:0 -210px;color:#733900} <br/>.selectitem dl .tag_sports{background-position:0 -240px;color:#9B018B} <br/><br/><br/></style> <br/><FCK:meta name="author" content="Mr.Think青鸟" /> <br/><FCK:meta name="keywords" content="Mr.Think,前端开发,WEB前端,前端技术,前端开发,WEB前端开发,用户体验,网站策划,网站优化,青鸟,javascript,jQuery,css,xhtml,html,UE,SEO,Mr.Think的博客,青鸟的博客,PHP爱好者,Bluebirdsky" /> <br/><FCK:meta name="description" content="Mr.Think的博客,中文网名青鸟,现专注于WEB前端开发,同时也是一位PHP的爱好者.爱思考,有点代码洁癖,生吃过螃蟹腿,喜好肉食.这里是我记录知识与生活琐事的地方." /> <br/><link rel="pingback" href="http://mrthink.net/xmlrpc.php" /> <br/><link rel="alternate" type="application/rss+xml" title="Mr.Think的博客 RSS Feed" href="http://mrthink.net/feed/" /> <br/></head> <br/><body> <br/><h1><a href="http://mrthink.net/" _fcksavedurl="http://mrthink.net/">Mr.Think的个人博客</a><br/>@专注前端技术,热爱PHP,崇尚简单生活.</h1> <br/><h3>返回文章页:<a href="http://mrthink.net/jquery-plugin-iselect/" _fcksavedurl="http://mrthink.net/jquery-plugin-iselect/">用dl模拟实现可自定义样式的SELECT下拉列表@Mr.Think</a></h3> <br/><!--DEMO start--> <br/><div id="demo"> <br/><dl class="tips"> <br/><dt>用dl模拟实现可自定义样式的SELECT下拉列表</dt> <br/><dd>1. 充分考虑用户体验, 快速划过不会触发;</dd> <br/><dd>2. 可根据需求自定义各种样式;</dd> <br/><dd>3. 如果你有兴趣, 你还可以改进成即可输入值又可下拉的下拉列表.</dd> <br/></dl> <br/><br/><div class="selectitem"> <br/><dl> <br/><dt class="shrink">请选择标签类别</dt> <br/><dd class="tag_news">时事 新闻</dd> <br/><dd class="tag_it">技术互联网 新玩意儿 </dd> <br/><dd class="tag_reading">读书 音乐 影视</dd> <br/><dd class="tag_interests">兴趣 爱好 活动</dd> <br/><dd class="tag_career">事业 理财</dd> <br/><dd class="tag_living">生活 情感</dd> <br/><dd class="tag_sports">娱乐 体育</dd> <br/></dl> <br/></div> <br/><div class="selectitem demo_b"> <br/><dl> <br/><dt class="shrink">请选择标签类别</dt> <br/><dd class="tag_news">时事 新闻</dd> <br/><dd class="tag_it">技术互联网 新玩意儿 </dd> <br/><dd class="tag_reading">读书 音乐 影视</dd> <br/><dd class="tag_interests">兴趣 爱好 活动</dd> <br/><dd class="tag_career">事业 理财</dd> <br/><dd class="tag_living">生活 情感</dd> <br/><dd class="tag_sports">娱乐 体育</dd> <br/></dl> <br/></div> <br/><div class="selectitem demo_c"> <br/><dl> <br/><dt class="shrink">请选择标签类别</dt> <br/><dd class="tag_news">时事 新闻</dd> <br/><dd class="tag_it">技术互联网 新玩意儿 </dd> <br/><dd class="tag_reading">读书 音乐 影视</dd> <br/><dd class="tag_interests">兴趣 爱好 活动</dd> <br/><dd class="tag_career">事业 理财</dd> <br/><dd class="tag_living">生活 情感</dd> <br/><dd class="tag_sports">娱乐 体育</dd> <br/></dl> <br/></div> <br/></div> <br/><!--DEMO end--> <br/><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <br/><script> <br/>/******************************* <br/>* @author Mr.Think <br/>* @author blog http://mrthink.net/ <br/>* @2010.10.31 <br/>* @可自由转载及使用,但请注明版权归属 <br/>*******************************/ <br/>;(function($){ <br/>$.fn.extend({ <br/>iSelect: function(options){ <br/>var iset = { <br/>name: $(’.selectitem’), //容器 <br/>select: $(’.selectitem>dl’), //dl列表 <br/>dropCss: ’drop’, //收藏状态dt的样式 <br/>shrinkCss: ’shrink’, //展开状态dt的样式 <br/>hoverCss: ’hover’, //鼠标划过dd时的样式 <br/>clearTime: 100, //允许用户快速划过不触发的时间(ms) <br/>dropTime: 100, //展开时间(ms) <br/>shrinkTime: 100 //收缩时间(ms) <br/>} <br/>options = options || {}; <br/>$.extend(iset, options); <br/>var mainHeight = iset.name.height();//容器高度 <br/>var selectHeight = iset.select.height(); //dl实际高度 <br/>var curTxt = iset.select.find(’dt’).html(); //dt默认html内容 <br/>var self = null; <br/>var hoverElem = null; //避免用户快速划过时触发事件 <br/>iset.name.each(function(){ <br/>$(this).hover(function(){ <br/>self = this; <br/>hoverElem = setTimeout(function(){ <br/>$(self).stop(true, false).animate({ //鼠标划过时,展开dl <br/>height: selectHeight <br/>}, iset.dropTime); <br/>if ($(self).find(’dt’).html() == curTxt) { //判断是否有选择下拉列表,若无则改变dt样式 <br/>$(self).find(’dt’).attr(’class’, iset.dropCss); <br/>} <br/>//dd的鼠标事件 <br/>$(self).find(’dd’).mouseover(function(){ <br/>$(this).addClass(iset.hoverCss).siblings().removeClass(iset.hoverCss); <br/>}).mousedown(function(){ //鼠标点击时取值并赋给dt <br/>$(self).find(’dt’).html($(this).html()).attr(’class’, $(this).attr(’class’)); <br/>$(self).stop(true, false).animate({ <br/>height: mainHeight <br/>}, iset.shrinkTime); <br/>}).removeClass(iset.hoverCss); <br/>}, iset.clearTime); <br/>}, function(){ <br/>//鼠标移出后触发的事件 <br/>clearTimeout(hoverElem); <br/>$(self).stop(true, false).animate({ <br/>height: mainHeight <br/>}, iset.shrinkTime); <br/>if ($(self).find(’dt’).html() == curTxt) { <br/>$(self).find(’dt’).attr(’class’, iset.shrinkCss); <br/>} <br/>}); <br/>}) <br/>} <br/>}) <br/>})(jQuery); <br/>//使用方法 <br/>$(function(){ <br/>//默认调用 <br/>$(’#demo’).iSelect(); <br/><br/>//传入自定义值的调用 方法 <br/>// $(’.demo_a’)({ <br/>// name:$(’yourcss’), <br/>// select: $(’.yourcss>dl’), <br/>// dropCss: ’yourdrop’, <br/>// shrinkCss: ’yourshrink’, <br/>// hoverCss: ’yourhover’, <br/>// clearTime: 200, <br/>// dropTime: 200, <br/>// shrinkTime: 200 <br/>// }); <br/>}) <br/></script> <br/></body> <br/></html> <br/><br/>
效果图:
http://www.jb51.net/article/25218.htm
365
据说看到好文章
不转
的人,服务器容易
宕机
!
标签:
JS Widget
Html
jQuery
原创文章如转载,请注明:转载自郑州网建-前端开发
http://camnpr.com/
本文链接:
http://camnpr.com/javascript/304.html
相关
文章
jQuery 90有用的滑球插件教程(90 Useful jQuery Slider Plugins
(2011-5-4 9:8:6)
jQuery插件keyfilter实现过滤字母、数字或特殊字符等
(2011-4-26 10:49:29)
js实现弹出地区选择效果-仿51job地区选择特效
(2011-4-12 14:46:32)
用js实现select的美化
(2011-4-6 11:21:8)
JS触发select控件显示下拉菜单
(2011-4-6 11:7:18)
jQuery formValidator插件inputValidator,compareValida
(2011-4-2 15:39:6)
使用Google CDN服务提供的jQuery库
(2011-3-14 19:6:23)
jQuery 1.5发布 Ajax模块重写
(2011-2-18 9:55:15)
Web开发人员必备的20款超赞的jQuery插件
(2011-2-18 9:46:44)
JQuery的html(data)方法与<script>脚本块的解决方法
(2011-2-14 15:45:5)
关注
本站
[+] 关注微博
一条
新消息
“When you get bored, click something. If that doesn't help, then turn off your computer immediately.”--douglas crockford[译:道格拉斯·克罗克福德][注:此乃JS超级大神]
[?]
冬天来了,该换包包了,猛烈点击!!!
小编
推荐
Warning: K: Support for defaultP...
自定义组件ref不支持字符串名称:Fu...
vue2 对watch的使用 监听数据 并包...
Uncaught SecurityError: Failed t...
vue build报错:Could not find a d...
vue-tsc --noEmi 报错 Search stri...
webpack入门——webpack 配置
Weex 快速了解和入门 构建高性能的...
自由组合的倒计时库:jQuery.countd...
javascript防劫持-防止网页被Frame...
通过一个简单例子快速学习Vue.js
vue-cli#2.0 webpack 配置分析
东东找到
花花了
最新评论
最近访客
热门
文章
Warning: K: Support for defaultP...
自定义组件ref不支持字符串名称:Fu...
vue2 对watch的使用 监听数据 并包...
Uncaught SecurityError: Failed t...
vue build报错:Could not find a d...
vue-tsc --noEmi 报错 Search stri...
webpack入门——webpack 配置
git配置user.name和user.email 解决...
Weex 长列表的复用方案
Android - Hello World示例
weex 入门相关知识 打包 apk
Weex 快速了解和入门 构建高性能的...
攻读在职研究生的方式有:同等学力申...
我的第一个mobile.ant.design小项目...
想你
所想 爱你所爱
豫ICP备10013645号
Copyright 2009-2022 camnpr.com
关于我们
-
广告合作
-
免责声明
-
投诉建议