js 自定义个性下拉选择框示例

 更新时间:2013年08月20日 15:44:48   作者:  
下拉选择框想必大家并不陌生,一边情况下都是使用默认的,为了打破传统,下面与大家分享下使用js自定义下拉选择框示例代码,感兴趣的朋友可以参考下
复制代码 代码如下:

<!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>
<link type="text/css" rel="stylesheet" href="../css/statistics.css"/>
<script src="../js/jquery.js"></script>
<style type="text/css">
.dropdiv{
width: 177px;
height: 16px;
overflow: hidden;
float: left;
font-size: 13px;
font-family: "微软雅黑";
position: relative;
padding: 5px;
}
.drpdown{
width: 214px;
height: 24px;
font-size: 13px;
font-family:"微软雅黑";
position: relative;
border:none;
padding-top:4px;
background:url(../images/dropdown.png) repeat-x;
}
.drpdown:active{
width: 214px;
height: 24px;
font-size: 13px;
font-family:"微软雅黑";
position: relative;
border:none;
padding-top:4px;
background:url(../images/dropdown.png) repeat-x;
}
.droparrow{
width:27px;
height:27px;
background:url(../images/droparrow.png) no-repeat;
float:right;
}
.droparrow:hover{
width:25px;
height:25px;
background:url(../images/droparrow.png) no-repeat;
float:right;
border:#F00 1px solid;
}
.dropmiandiv{
margin-left:40px;
width:214px;
border: 2px solid #aaaaaa;
background:url(../images/dropdown.png) repeat-x;
height: 26px;
}
.chooseItems{
border:#666 2px solid;
}
.chooseItems .chooseItem{
font-size: 13px;
font-family: "微软雅黑";
padding: 5px;
}
.chooseItems .chooseItem:hover{
background:#09F;
}
</style>
</head>

<body>

<div class="dropmiandiv" quest ="select1">
<div id ="select1" displayMember="-1" valueMember ="请选择" class="dropdiv">请选择</div>
<div class="droparrow"></div>
</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;">
<div id ="select2" displayMember="-1" valueMember ="请选择" class="dropdiv">请选择</div>
<div class="droparrow"></div>
</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">
$(".droparrow").click(function(e){
var quest = $(this).parent();
var questwidth = parseInt(quest.width());
var questheight = quest.height();
var left = quest.offset().left;
var top = parseInt(quest.offset().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).hide();
}else{
$(selectsd).css({"left":left+"px","top":top+"px","width":questwidth+"px"}).show();
}
});
$(".dropdiv").click(function(e){
var quest = $(this).parent();
var questwidth = parseInt(quest.width());
var questheight = quest.height();
var left = quest.offset().left;
var top = parseInt(quest.offset().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).hide();
}else{
$(selectsd).css({"left":left+"px","top":top+"px","width":questwidth+"px"}).show();
}
});
$(".chooseItem").click(function(e){
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.html(valueMember);
parent.change();
}

$(this).parent().hide();
});
$(".dropdiv").change(function(e){
alert($(this).attr("valueMember"));
});
$(".dropmiandiv").mouseleave(function(e){
var quest = $(this).attr("quest");
$('.chooseItems[answer='+quest+']').hide();
});
$(".chooseItems").mouseenter(function(e){
$(this).show();
});
$(".chooseItems").mouseleave(function(e){
$(this).hide();
});
</script>

相关文章

  • JavaScript实现滑动门效果

    JavaScript实现滑动门效果

    这篇文章主要为大家详细介绍了JavaScript实现滑动门效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • js获得鼠标的坐标值的方法

    js获得鼠标的坐标值的方法

    js获得鼠标的坐标值的方法,需要的朋友可以参考一下
    2013-03-03
  • 微信小程序url传参写变量的方法

    微信小程序url传参写变量的方法

    这篇文章主要介绍了微信小程序url传参写变量的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • javascript伸缩型菜单实现代码

    javascript伸缩型菜单实现代码

    这是一款真正的JavaScript伸展收缩型菜单,鼠标放上看一看,是不是很酷?鼠标划出菜单项的时候,背景会伸长。菜单没有加链接,想用的自己加,再美化一下,绝对够个性吧。
    2015-11-11
  • js为数字添加逗号并格式化数字的代码

    js为数字添加逗号并格式化数字的代码

    数字添加逗号的方法有很多,在本将为大家介绍下使用js来实现,具体如下,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • JS下载文件|无刷新下载文件示例代码

    JS下载文件|无刷新下载文件示例代码

    JS下载文件的实现在网上可以找到很多教程,不过本文为大家介绍的是无刷新下载文件,貌似更酷一点是吧
    2014-04-04
  • IE6已终止操作问题的2种情况及解决

    IE6已终止操作问题的2种情况及解决

    打开某个页面时,弹出提示框“Internet Explorer无法打开Internet 站,经过一番奋战,利用排除法解决了问题,共发现2种情况
    2014-04-04
  • js触发onchange事件的方法说明

    js触发onchange事件的方法说明

    怎么在js代码模式通过代码触发textbox控件的onchange事件呢,经过查阅资料,发现js提供了一个方法,可以触发控件的应该是所有事件
    2014-03-03
  • 基于jQuery的模仿新浪微博时间的组件

    基于jQuery的模仿新浪微博时间的组件

    废话不多说,实现原理主要是处理table,生成tr td,其中最重要的是如何找出每月第一天是星期几,然后就能对应出这个月的余下天数.
    2011-10-10
  • uploadify插件实现多个图片上传并预览

    uploadify插件实现多个图片上传并预览

    这篇文章主要为大家详细介绍了uploadify插件实现多个图片上传并预览,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09

最新评论