自定义的一个简单时尚js下拉选择框


Posted in Javascript onNovember 20, 2013
<!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>statistics test</title> 
<script src="../js/jquery.js"></script> 
<style type="text/css"> 
.dropdiv{ 
width: 180px; 
height: 24px; 
overflow: hidden; 
float: left; 
font-size: 13px; 
font-family: "微软雅黑"; 
position: relative; 
padding: 0px 26px 0px 5px; 
border: solid 1px #cecece; 
background: url(../images/droparrow.png) 186px no-repeat; 
} 
.dropmiandiv{ 
margin-left: 40px; 
width: 213px; 
background: url(../images/dropdown.png) repeat-x; 
height: 27px; 
} 
.chooseItems{ 
border: solid 1px #cecece; 
} 
.chooseItems .chooseItem{ 
font-size: 13px; 
font-family: "微软雅黑"; 
padding: 5px; 
border-bottom: solid 1px #cecece; 
} 
.chooseItems .chooseItem:last-child{ 
border-bottom:none; 
} 
.chooseItems .chooseItem:hover{ 
background: #f2f2f2; 
} 
</style> 
</head> <body> 
<div class="dropmiandiv" quest ="select1"> 
<input type="text" readonly="readonly" id ="select1" displayMember="-1" valueMember ="请选择" class="dropdiv" value="请选择"/> 
</div> 
<div class="chooseItems" answer ="select1" style="display:none; position:absolute;"> 
<div class="chooseItem" displayMember="0" valueMember ="独立注册译员">独立注册译员</div> 
<div class="chooseItem" displayMember="1" valueMember ="供应商译员">供应商译员</div> 
<div class="chooseItem" displayMember="2" valueMember ="供应商">供应商</div> 
<div class="chooseItem" displayMember="3" valueMember ="代理商">代理商</div> 
</div> 
<div class="dropmiandiv" quest ="select2" style="position:absolute;top:200px;"> 
<input type="text" readonly="readonly" id ="select2" displayMember="-1" valueMember ="请选择" class="dropdiv" value="请选择"/> 
</div> 
<div class="chooseItems" answer ="select2" style="display:none; position:absolute;"> 
<div class="chooseItem" displayMember="0" valueMember ="独立注册译员">独立注册译员</div> 
<div class="chooseItem" displayMember="1" valueMember ="供应商译员">供应商译员</div> 
<div class="chooseItem" displayMember="2" valueMember ="供应商">供应商</div> 
<div class="chooseItem" displayMember="3" valueMember ="代理商">代理商</div> 
</div> 
</body> 
</html> 
<script type="text/javascript"> 
$(".dropdiv").click(function(e){ 
$(".chooseItems").slideUp(300); 
e.stopPropagation(); 
var quest = $(this).parent(); 
var questwidth = parseInt(quest.width())-2; 
var questheight = quest.height(); 
var left = quest.position().left+parseInt(quest.css("margin-left"))+parseInt(quest.css("padding-left")); 
var top = parseInt(quest.position().top)+parseInt(questheight)+4; 
var attrs = quest.attr("quest"); 
var selectsd = $('.chooseItems[answer='+attrs+']'); 
var selectsdHeight = selectsd.height(); 
if((top+selectsdHeight)>$(window).height()){ 
top = top - selectsdHeight - questheight-7; 
} 
if($(selectsd).is(":visible")){ 
$(selectsd).slideUp(300); 
}else{ 
$(selectsd).css({"left":left+"px","top":top+"px","width":questwidth+"px"}).slideDown(300); 
} 
}); 
$(".chooseItem").click(function(e){ 
e.stopPropagation(); 
var divhtml = $(this); 
var displayMember,valueMember; 
displayMember = divhtml.attr("displayMember"); 
valueMember = divhtml.attr("valueMember"); 
var attrs =$(this).parent().attr("answer"); 
var parent = $("#"+attrs); 
var olddisplayMember,oldvalueMember; 
olddisplayMember = parent.attr("displayMember"); 
oldvalueMember = parent.attr("valueMember"); 
if(olddisplayMember !=displayMember){ 
parent.attr("displayMember",displayMember); 
parent.attr("valueMember",valueMember); 
parent.val(valueMember); 
parent.change(); 
} 
$(this).parent().slideUp(300); 
}); 
$(document).click(function(e){ 
var target = $(e.target); 
if(target.closest(".chooseItems").length == 0){ 
$(".chooseItems").slideUp(300); 
} 
}); 
</script>

效果图
自定义的一个简单时尚js下拉选择框
Javascript 相关文章推荐
页面版文本框智能提示JS代码
Nov 20 Javascript
JavaScript 学习初步 入门教程
Mar 25 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 Javascript
layer.confirm取消按钮绑定事件的方法
Aug 17 Javascript
Vue组件间通信 Vuex的用法解析
Aug 05 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
微信小程序pinker组件使用实现自动相减日期
May 07 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
Jan 11 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 Javascript
jQuery对html元素取值与赋值的方法
Nov 20 #Javascript
客户端js判断文件类型和文件大小即限制上传大小
Nov 20 #Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 #Javascript
使用js简单实现了tree树菜单
Nov 20 #Javascript
js 用CreateElement动态创建标签示例
Nov 20 #Javascript
JS实现字体选色板实例代码
Nov 20 #Javascript
jquery实现树形二级菜单实例代码
Nov 20 #Javascript
You might like
用PHP函数解决SQL injection
2006/12/09 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
网页自动跳转代码收集
2009/09/27 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
秋天的雨教学反思
2014/04/27 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
个人债务授权委托书
2014/10/17 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
经典导游欢迎词
2015/01/26 职场文书
公司内部升职自荐信
2015/03/27 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
七年级作文之雪景
2019/11/18 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python