- 浏览: 262467 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
wangking717:
4jcms已转为私人项目了,供以后自己用~ 如果有人感兴趣的, ...
企业网站CMS开发萌芽阶段,正在策划中... -
wangking717:
CommonAccount 写道怎么我写了没反应你需要把jqu ...
Jquery文字连接移动效果,鼠标放上去,横向移动特效 -
程序员是怎么炼成的:
你好,需要用到的jar包有哪些,如果用httclient4来开 ...
HttpClient4 Post XML数据 -
CommonAccount:
怎么我写了没反应
Jquery文字连接移动效果,鼠标放上去,横向移动特效 -
wangking717:
shankesgk2 写道这个还在开发吗?是的,在开发阶段~
企业网站CMS开发萌芽阶段,正在策划中...
wangking 写道
下拉框特点:
1.可自定义下拉框的高度和宽度。
2.无需用户写多余代码,就和用原生态的SELECT一样的原理,使用简单。
3.功能强大,在下拉框中增加了extraData DIV层,供用户自定义特殊需求,当然用户也可以不选择使用extraData DIV层,用普通的SELECT即可。
1.可自定义下拉框的高度和宽度。
2.无需用户写多余代码,就和用原生态的SELECT一样的原理,使用简单。
3.功能强大,在下拉框中增加了extraData DIV层,供用户自定义特殊需求,当然用户也可以不选择使用extraData DIV层,用普通的SELECT即可。
下拉框截图:
具体代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>下拉框测试</title> <script type="text/javascript" src="__JS__/jquery.min.js"></script> <style type="text/css"> <!-- body {padding:10px;} * {margin:0; padding:0; font-size:12px;} ul,li {list-style-type:none;} .select {width:150px; height:25px; border:1px solid #ccc; padding-left:10px;} .defaultItem{background:url(__IMAGE__/select_arrow.gif) no-repeat right center white;} .select span {cursor:pointer; display:block; width:100%; height:100%;overflow:hidden;} .select table {height:100%;} .select td {vertical-align:middle;} .select ul{width:181px;} .select ul li {cursor:pointer;} .select .items {overflow-y: scroll; overflow-x: hidden;max-height:148px; height:148px;width:180px; position:absolute;border:1px dashed #ccc; background:#fff;z-index:999;display:none;} .select .items li {display:block; line-height:25px; padding-left:10px;} .select .hover,.onhover {background:#ccc;} .select .extraData{position:absolute;line-height:20px;padding-left:10px; padding-top:5px; padding-bottom:5px;border:1px dashed #ccc;background:white;display:none;} --> </style> <script type="text/javascript"> var isItemHover = 0; // ITEM是否正在HOVER使用,供清楚ONHOVER状态 var delayTime4Select = null; //延迟消失下拉框 var selectUsingObj = ""; //正在使用哪个SELECT,供MOUSE OVER AND OUT时使用 var selectCloseUsing = 0; //是否在执行关闭操作 var isClickSelectTextObj = 0; //是否点击了SELECT控件里的输入框 $(document).ready(function(){ $(".select :text").click(function(){ //当鼠标点击了.select里面的任何一个输入框,则取消掉[鼠标移出焦点后,自动消失事件] isClickSelectTextObj = 1; }); $('.defaultItem').click(function(event){ //鼠标点击[请选择],弹出下拉框 if(selectCloseUsing == 1){ return; } var parentObj = $(this).parent(); if(selectUsingObj != "" && selectUsingObj != parentObj.attr("idtag")){ $("[idtag='"+selectUsingObj+"']").find('ul.items').hide(); $("[idtag='"+selectUsingObj+"']").find('.extraData').hide(); } if(selectUsingObj != ""){ //点击事件[执行关闭SELECT]操作 clearTimeout(delayTime4Select); selectCloseUsing = 1; var itemsOBJ = parentObj.find('ul.items');; itemsOBJ.hide(); var extraOBJ = $("[idtag='"+selectUsingObj+"']").find(".extraData"); extraOBJ.hide(); selectUsingObj = ""; delayTime4Select = setTimeout(function(){ selectCloseUsing = 0; isClickSelectTextObj = 0; },200); }else{ //点击事件[执行打开SELECT]操作 selectUsingObj = parentObj.attr("idtag"); clearTimeout(delayTime4Select); var selectWidth = parentObj.width(); //动态设置ul.items宽度 var selectHeight = parentObj.height(); //动态设置ul.items的TOP偏移量 var id = parentObj.attr("idtag"); var hiddenVal = ""; //隐藏域的值,用来显示选中ITEM项 var element=$("#"+id); if(element.length > 0){ hiddenVal = $("#"+id).val(); } var itemsOBJ = parentObj.find('ul.items'); itemsOBJ.css("width",selectWidth+11); itemsOBJ.css({top:parentObj.offset().top+selectHeight,left:parentObj.offset().left}); itemsOBJ.show(); //找到ul.items显示 var extraOBJ = parentObj.find(".extraData"); if(extraOBJ.length > 0){ //SELECT额外数据DIV存在 extraOBJ.css("width",selectWidth+1); extraOBJ.css({top:parentObj.offset().top+selectHeight+itemsOBJ.height(),left:parentObj.offset().left}); extraOBJ.show(); } parentObj.find('li').hover(function(){ isItemHover = 1; $(this).addClass('hover'); $(this).parent().find('li').removeClass('onhover'); }, function(){ $(this).removeClass('hover'); });//li的hover效果 if(isItemHover == 0){ itemsOBJ.find("li").each(function(){ if(hiddenVal == $(this).attr("value")){ $(this).addClass('onhover'); } }); } } }); $('.select,.extraData').mouseover(function(event){ selectCloseUsing = 0; }); $('.select,.extraData').mouseout(function(event){ selectCloseUsing = 1; var toElement = null; if ($.browser.mozilla){ //火狐下不支持toElement toElement = event.relatedTarget; }else{ toElement = event.toElement; } if($(this)[0].contains(toElement)){ //如果是内部元素,则不执行以下代码 return; } var itemsOBJ = null; if($(this).attr("class") == "select"){ itemsOBJ = $(this).find('ul.items'); }else{ itemsOBJ = $(this).parents("div").find('ul.items'); } delayTime4Select = setTimeout(function(){ if(selectCloseUsing == 1 && isClickSelectTextObj == 0){ itemsOBJ.hide(); var extraOBJ = $("[idtag='"+selectUsingObj+"']").find(".extraData"); if (extraOBJ.length > 0) { extraOBJ.hide(); } isItemHover = 0; selectUsingObj = ""; } },3000); }); $('ul.items li').live("click",function(){ selectCloseUsing = 1; var parentDiv = $(this).parents("div"); parentDiv.find('td').html($(this).html()); var id = parentDiv.attr("idtag"); var element=$("#"+id); if(element.length > 0){ $("#"+id).val($(this).attr("value")); }else{ parentDiv.after('<input type="hidden" id="'+id+'" name="'+id+'" value="'+$(this).attr("value")+'"/>'); } parentDiv.find('ul').hide(); var extraOBJ = $("[idtag='"+selectUsingObj+"']").find(".extraData"); if (extraOBJ.length > 0) { extraOBJ.hide(); } selectUsingObj = ""; isItemHover = 0; delayTime4Select = setTimeout(function(){ selectCloseUsing = 0; isClickSelectTextObj = 0; },200); }); }); //给firefox定义contains()方法,ie下不起作用 if(typeof(HTMLElement)!="undefined"){ HTMLElement.prototype.contains=function(obj){ while(obj!=null&&typeof(obj.tagName)!="undefind"){ //通过循环对比来判断是不是obj的父元素 if(obj==this) return true; obj=obj.parentNode; } return false; }; } function closeSelect(obj){ selectCloseUsing = 1; var itemsOBJ = $(obj).parents("div").find('ul.items');; itemsOBJ.hide(); var extraOBJ = $("[idtag='"+selectUsingObj+"']").find(".extraData"); extraOBJ.hide(); selectUsingObj = ""; delayTime4Select = setTimeout(function(){ selectCloseUsing = 0; isClickSelectTextObj = 0; },200); } </script> </head> <body> <div idtag="name" class="select" style="width:521px;height:50px;"> <span class="defaultItem"><table><tr><td>请选择...</td></tr></table></span> <ul class="items"> <li value="1111">选项一</li> <li value="2222">选项二</li> <li value="3333">选项三</li> <li value="4444">选项四</li> <li value="5555">选项五</li> <li value="6666">选项六</li> <li value="7777">选项七</li> <li value="8888">选项八</li> <li value="9999">选项九</li> <li value="0000">选项十</li> </ul> <div class="extraData"> <input type="text" id="aaa" value="Close"/> 这个DIV层属于扩展层,用户可根据自己需求确定是否需要这个。<input type="button" id="aaa" value="Close" onclick="closeSelect(this)"/></div> </div> <br/><br/><br/> <!-- SELECT.......[开始] --> <div idtag="users" class="select"> <span class="defaultItem"><table><tr><td>请选择...</td></tr></table></span> <ul class="items"> <li value="1">wangking</li> <li value="2">jiaojiao</li> </ul> </div> <!-- SELECT.......[结束] --><br/><br/><br/> <input type="text" id="testinput" /><br/><br/><br/> <input type="text" id="haha" /> </body> </html>
怎么使用?如下:
INCLUDE CSS AND JS。。。。 THEN。。。 这个是原生态的SELECT: <select name="users" id="users"> <option value="1">wangking</option> <option value="2">jiaojiao</option> </select> 则对应改为: <div idtag="users" class="select"> <span class="defaultItem"><table><tr><td>请选择...</td></tr></table></span> <ul class="items"> <li value="1">wangking</li> <li value="2">jiaojiao</li> </ul> </div>
PS: 欢迎共同讨论交流。
发表评论
-
uni-app 云打包iOS微信SDK需要配置通用链接(Universal Links)
2020-08-18 22:15 0从HBuilderX 2.3.4(alpha)版本开始, ... -
极速免费云服务器活动,享用终身永久免费
2019-12-26 10:03 5一直在用三丰云的免费云服务器,很实用,流畅性稳定性都很好,可 ... -
jQuery动画效果学习
2016-05-09 16:36 6641、元素的显示和隐藏 display:none; ... -
大型网站系统架构的演化
2015-12-25 11:57 519前言 一个成熟的大型网站(如淘宝、京东等)的系统 ... -
Zend Studio代码无法自动提示以及代码跟踪函数和变量问题的解决方法
2014-10-22 22:31 656今天在工作中,发现我的Zend Studio8.0.1无法进 ... -
Zend Studio上安装Aptana,打造完美编辑器。
2014-09-16 11:30 3095Zend Studio在PHP上的开发是比较不错的, ... -
jquery bxslider幻灯片样式改造
2013-11-15 18:08 1825找了很多jquery的幻灯片,都觉得不是很好,最后发现bx ... -
Jquery文字连接移动效果,鼠标放上去,横向移动特效
2013-09-30 03:58 1856这种jQuery文字横向滚动效果,可以应用到文章列表页标题栏 ... -
企业网站CMS开发萌芽阶段,正在策划中...
2013-09-23 00:20 1017做多了企业级别的网站,顿时觉得很多重复性的工作,所以打算策 ... -
在WINDOWS中设置计划任务执行PHP文件
2013-03-17 22:05 1135在网上找了些WINDOWS执行PHP的计划任务的方法,有一个 ... -
jQuery图片延迟加载插件
2013-03-13 17:17 1085有时候网页比较大且图片有比较多,会导致页面打开的速度 ... -
EMAIL群发营销设计规范
2013-03-05 13:48 1248一般做邮件群发,很容易进入垃圾邮箱,或者提示一下: 这不是 ... -
去除多余无用的CSS代码,dust-me-selectors堪称利器!
2012-12-06 00:19 3403用于清理页面中多余的css的工具:dust-me-select ... -
JS DIV拖动交换位置DEMO
2012-11-07 15:16 2591该DEMO来自网上,其中优化了部分的BUG。并且DRAGSOR ... -
解决IE6下FIXED BUG。轻松定位。
2012-10-20 11:26 1241代码非常简单。自己在本地测试一下。。 /* 兼容 ... -
jquery 获取各种有用的高度定位
2012-09-20 14:13 961获取浏览器显示区域的高度 : $(window). ... -
[转]IE6下js的onmouseover和onmouseout事件连续触发闪烁解决方法
2012-09-17 11:26 1943解决HTML内部元素的Mouse事件干扰 话说有一个DIV元素 ... -
网页速度很慢优化方案:如何提高网页加载速度,提升网站加载速度
2012-04-08 07:15 3672网站加载速度的快慢, ... -
保证数据正确性,乐观锁的控制!
2011-03-13 17:44 1472wangking 写道 为了保证数据的完整性以及正确性 ... -
CSS的一些应用技巧
2011-02-26 03:28 10361. 怎么控制一行拥有几条LI。 .rep { ...
相关推荐
本项目通过`jq`(jQuery)库实现了对`select`控件的模仿,创建了一款既美观又实用的下拉框控件。下面将详细讲解这个知识点。 1. **jQuery (jq) 库的使用** jQuery 是一个轻量级的JavaScript库,它简化了HTML文档...
在网页设计中,"DIV+CSS封装的一个下拉框效果"是一种常见的交互设计技术,它通过结合HTML结构、CSS样式以及可能的JavaScript(如Jquery)来实现更加灵活且美观的下拉选择功能。这种技术相比传统的HTML下拉框(`...
总的来说,`jQuery手机下拉框select` 是通过jQuery Mobile库实现的一种优化移动端用户体验的解决方案。它提供了丰富的样式、交互和功能特性,帮助开发者创建出更符合移动设备需求的下拉菜单。通过理解和应用这些技术...
`jQuery select下拉框美化代码`这个压缩包的实现可能还包含了其他细节,如防止多次点击导致的闪烁,以及在鼠标移出下拉框时自动隐藏内容等功能。这种美化代码对于提升网站的用户体验和专业感具有积极意义,特别是...
这是一款实用的select下拉框美化jquery插件。该select下拉框的原理是将select标签隐藏,并按照select标签用div和list绘制一个控件,将用户对div的操作映射到select上。css文件可以根据不同需求修改。
"DIV模拟select下拉框"就是一种利用JavaScript库,如jQuery,来实现这一目标的技术。它通过用CSS样式化的DIV元素替换原生的SELECT元素,从而提供更灵活的外观和交互体验。 标题中的"DIV模拟select下拉框"意味着我们...
4.jquery+div实现同时滑动切换的图文展示特效插件下载 5.jquery+div带动画按钮图片手动与自动切换的特效代码 6.jquery一页多用的飞飞图片幻灯插件演示 7.jquery仿flash产品图片多角度展示特效代码 8.jquery...
本资源主要介绍如何使用jQuery来实现select下拉框的样式美化效果。 首先,我们需要引入jQuery库。jQuery的最新版本可以在官方网站(https://jquery.com/download/)下载,也可以通过CDN链接快速引入,如: ```html ...
现在,我们可以编写 jQuery 代码来实现多选下拉框的功能。首先,我们需要获取到这个下拉框元素,然后绑定事件监听器,以便在用户选择或取消选择选项时更新界面。例如,我们可以通过以下代码实现这一功能: ```...
"jquery select下拉框美化代码.zip" 提供了一种解决方案,通过结合jQuery库来增强和美化下拉框的外观和交互效果,使其更加吸引用户。 这个代码包可能包含以下几个部分: 1. **jQuery库**:jQuery是一个广泛使用的...
为了解决这个问题,开发者常常使用`div`元素配合CSS和JavaScript来模拟下拉菜单,以实现更加灵活和美观的效果。在这个"div模拟下拉菜单(select)jquery插件.gz"压缩包中,包含的就是这样一个基于`div`和jQuery的...
代码中可能还使用了JavaScript库,如jQuery,来简化DOM操作和事件处理,或是使用原生的JavaScript API来增加性能和兼容性。 总之,这个源码示例展示了HTML5和CSS3的强大组合,不仅实现了自定义的下拉框菜单,还加入...
在网页开发中,"jQuery模拟select下拉框三级城市联动代码"是一种常见的交互设计,用于实现用户在选择一级城市后,自动更新二级城市列表,接着选择二级城市后,再动态加载三级城市的联动效果。这种技术提高了用户体验...
`div模拟select自定义下拉列表框`是一种常见做法,它利用JavaScript(如jQuery)和CSS来实现,可以提供比原生`<select>`元素更丰富的样式控制和交互体验。本篇将详细介绍这种技术及其应用。 一、为什么使用div模拟...
3. **CSS样式和动画**:使用`<div>`而非原生`<select>`可以实现自定义样式,通过CSS可以设置下拉框的外观,包括颜色、大小、边框等。jQuery还可以用来实现动画效果,比如下拉框展开和收起的过渡动画。 4. **数据...
在"select下拉框可编辑输入框"的设计中,CSS起到了至关重要的作用,主要体现在以下几个方面: 1. **样式定制**:通过CSS,我们可以定制下拉框的外观,如边框、背景色、字体样式等,使其与网页的整体设计风格保持...
总之,"jQuery实现select下拉框菜单选中插件.zip"是一个旨在提升`<select>`元素用户体验的工具。通过深入理解jQuery的API、CSS样式和可能的事件处理,你可以有效地利用这个插件,为你的网页项目添加专业且个性化的...
**基于jQuery实现的多选下拉框** 在Web开发中,传统的HTML下拉框(`<select>`元素)...在实际项目中,可以进一步优化代码,例如使用CSS3来美化下拉框样式,或者使用插件如Chosen或Select2来提供更高级的下拉框组件。
本主题关注的是如何使用jQuery库来实现“小清新的”下拉框(select)样式美化效果。jQuery,作为一款强大的JavaScript库,简化了DOM操作、事件处理以及动画效果,使得开发者能够更便捷地实现此类功能。 首先,我们...
本文将深入探讨如何使用jQuery实现一个下拉框左右选择的功能,这是一个常见于用户界面设计中的交互元素,通常用于选项筛选或数据迁移。 首先,我们需要理解下拉框左右选择的基本概念。这种设计通常包含两个部分:...