很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮。这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找
function showExpand(targetId, expandId, expand_class) {
//先关掉其它弹出的层
if (expand_class != undefined) {
$(\".\" + expand_class).hide();
}
//判断是否为IE
var isIE = (! +[1, ]);
var expand = $(\"#\" + expandId);
var target = $(\"#\" + targetId);
var dx = 0;
if (isIE) {
dx = -2;
}
else {
dx = 0;
}
expand.get(0).style.left = target.get(0).getBoundingClientRect().left + dx + \"px\";
if (isIE) {
dx = 17;
}
else {
dx = 19;
}
expand.get(0).style.top = parseInt(target.get(0).getBoundingClientRect().top) + dx + \"px\";
expand.show();
//每个li点击时赋值
$(\"#\" + expandId).find(\"li\").each(function (i) {
$(this).show().click(function () {
target.val($(this).text().split(\' \')[1]);
expand.hide();
})
})
}
function search(srcId, expandId) {
var expand = $(\"#\" + expandId);
var src = $(\"#\" + srcId);
var A = expand.find(\"a\");
var v = src.val().toUpperCase();
A.each(function (i) {
if (v.length >= 2) {
if ($(this).text().toUpperCase().indexOf(v) == -1) {
$(this).parent().hide();
}
else {
$(this).parent().show();
}
}
if (v.length <= 0) {
$(this).parent().show();
}
})
src.val(v);
}
$().ready(function(){
$(\"#txt_city\").keyup(function(){
search(\'txt_city\',\'city_select1\');
}).focus(function(){
showExpand(\'txt_city\',\'city_select1\',\'expand\')
})
$(\"#txt_city2\").keyup(function(){
search(\'txt_city2\',\'city_select2\');
}).focus(function(){
showExpand(\'txt_city2\',\'city_select2\',\'expand\')
})
})
function fnTest(){
document.getElementById(\"txtTarget\").value = document.getElementById(\"txtSrc\").value;
}
</script>
</head>
<body>
<div class=\"page\" style=\"text-align: center\">
<input type=\"text\" value=\"\" id=\"txt_city\" class=\"input_expand\" /><a
href=\"#\" onclick=\"showExpand(\'txt_city\',\'city_select1\',\'expand\')\">▼</a>
<div class=\"expand\" id=\"city_select1\">
<ul>
<li><a href=\"javascript:void(0)\">SH 上海</a></li>
<li><a href=\"javascript:void(0)\">BJ 北京</a></li>
<li><a href=\"javascript:void(0)\">HZ 杭州</a></li>
<li><a href=\"javascript:void(0)\">WH 武汉</a></li>
<li><a href=\"javascript:void(0)\">NJ 南京</a></li>
<li><a href=\"javascript:void(0)\">WX 无锡</a></li>
</ul>
</div>
<input type=\"text\" value=\"\" id=\"txt_city2\" class=\"input_expand\" /><a
href=\"#\" onclick=\"showExpand(\'txt_city2\',\'city_select2\',\'expand\')\">▼</a>
<div class=\"expand\" id=\"city_select2\">
<ul>
<li><a href=\"javascript:void(0)\">CN 中文</a></li>
<li><a href=\"javascript:void(0)\">EN 英语</a></li>
<li><a href=\"javascript:void(0)\">JP 日本</a></li>
<li><a href=\"javascript:void(0)\">RA 俄语</a></li>
<li><a href=\"javascript:void(0)\">FA 法语</a></li>
<li><a href=\"javascript:void(0)\">00 其它</a></li>
</ul>
</div>
<br/>
<br/>
<input type=\"text\" id=\"txtSrc\" onkeyup=\"fnTest()\" />
<br/>
<input type=\"text\" id=\"txtTarget\" />
</div>
</body>
</html>
本文地址:https://www.stayed.cn/item/13546
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我