<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> simulate combox control - http://www.never-online.net </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style>
body, input
{
font-family: verdana;
font-size: 9pt;
}
h1
{
font-family: tahoma;
font-size: 22pt;
text-align: left;
}
pre
{
font-size: 9pt;
font-family: verdana;
border: 1px solid #006600;
width: 400px;
padding: 10px;
background: #ffffff;
color: #006600;
}
.CtlSelect
{
border: 1px solid #006600;
font-family: verdana;
height: 20px;
color: #006600;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected
{
background: #006600;
color: #ffffff;
height: 20px;
}
.unselected
{
height: 20px;
color: #006600;
line-height: 120%;
border-bottom: 1px solid #006600;
}
.CtlSelect1
{
border: 1px solid #003399;
font-family: verdana;
height: 20px;
color: #003399;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected1
{
background: #003399;
color: #ffffff;
height: 20px;
}
.unselected1
{
height: 20px;
color: #003399;
line-height: 120%;
border-bottom: 1px solid #003399;
}
.CtlSelect2
{
border: 1px solid #990000;
font-family: verdana;
height: 20px;
color: #990000;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected2
{
background: #990000;
color: #ffffff;
height: 20px;
}
.unselected2
{
height: 20px;
color: #990000;
line-height: 120%;
border-bottom: 1px solid #990000;
}
.copyright
{
margin-top: 10px;
font-size: 9pt;
text-align: center;
color: #333;
font-weight: bold;
}
</style>
</HEAD></P>
<P><BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
//-------------------------------------------------------------
// @ Module: simulate select control, IE only.
// @ Debug in: IE 6.0
// @ Script by: blueDestiny, never-online
// @ Updated: 2006-3-22
// @ Version: 1.0 apha
// @ Email: blueDestiny [at] 126.com
// @ Website: http://www.never-online.net
// @ Please Hold this item please.
//
// API
// @ class: simulateSelect()
//
// @ object.style(ctlStyle[,selStyle][,unselStyle])
// ctlStyle: main control combox css class name
// selStyle: when mouseover or option focus css class name
// unselStyle: options blur's css class name
//
// @ object.width=(widthPX)
// widthPX must be a digit number.
//
// @ object.height=(heightPX)
// heightPX must be a digit number.
//
// @ object.getValue(ctlSelID)
// ctlSelID is the unique select control ID
//
// -------------- for the next Version ----------
// @ object.readOnly = (blnReadOnly)
// blnReadOnly must be a boolean type or a number type.
// @ object.addEvent(w, h)
// w: fire handler's event.
// h: handler function.
//-------------------------------------------------------------</P>
<P>function $(objID)
{
return document.getElementById(objID);
};
function Offset(e)
{
var t = e.offsetTop;
var l = e.offsetLeft;
var w = e.offsetWidth;
var h = e.offsetHeight-2;</P>
<P> while(e=e.offsetParent)
{
t+=e.offsetTop;
l+=e.offsetLeft;
}
return {
top : t,
left : l,
width : w,
height : h
}
}
//-----------------------------------------------
function simulateSelect() { with(this)
{
this.IDs = [];
this.name = this;
// property for beta Version
// can editable combox
this.readonly = true;
this.height = 20;
this.width = null;
this.ctlStyle = "CtlSelect";
this.selStyle = "selected";
this.unselStyle = "unselected";
this.elementPrefix = "e__";
this.inputPrefix = "i__";
this.containerPrefix = "c__";
this.buttonPrefix = "b__";
return this;
}};
simulateSelect.prototype.init = function(ctlSelIDs) { with(this)
{
eval(name).append(ctlSelIDs);
eval(name).simulates();
}};</P>
<P>simulateSelect.prototype.style = function() { with(this)
{
ctlStyle = arguments[0];
selStyle = arguments[1];
unselStyle = arguments[2];</P>
<P>}};
//-----------------------------------------------
simulateSelect.prototype.append = function(ctlSelIDs) { with(this)
{
if( ctlSelIDs.indexOf(",")>0 )
{
var arrCtlSel = ctlSelIDs.split(",");
for(var i=0; i<arrCtlSel.length; i++)
{
eval(name).IDs.push(arrCtlSel[i]);
}
}
else
{
eval(name).IDs.push(ctlSelIDs);
}
}};
simulateSelect.prototype.checkupOnMouseDown = function(e) { with(this)
{
// here compatible mf.
var el = e ? e.srcElement : e.target;
if( el.id.indexOf(elementPrefix)>-1 ||
el.id.indexOf(inputPrefix)>-1 ||
el.id.indexOf(containerPrefix)>-1 ||
el.id.indexOf(buttonPrefix)>-1 )
{
return;
}
else
{
for(var i=0; i<eval(name).IDs.length; i++)
if( $(containerPrefix + IDs[i]) )
$(containerPrefix + eval(name).IDs[i]).style.display = "none";
}</P>
<P>}};
simulateSelect.prototype.simulates = function() { with(this)
{
for(var i=0; i<IDs.length; i++)
eval(name).simulate(IDs[i]);
}};
simulateSelect.prototype.simulate = function(ctlSelID) { with (this)
{
var input;
var button;
var object;
var offset;</P>
<P> object = $(ctlSelID);
offset = Offset(object);
input = document.createElement("INPUT");
button = document.createElement("BUTTON");
button.setAttribute("id", buttonPrefix + ctlSelID);
//button.value = "⊿";
button.value = "6";
button.style.fontFamily = "Webdings, Marlett";
button.style.background = "";
button.onclick = input.onclick = function()
{
this.blur();
eval(name).expand(ctlSelID, offset);
}
input.onselectstart = function() { eval(name).expand(ctlSelID, offset); event.returnValue = false; };
input.setAttribute("id", inputPrefix + ctlSelID);
input.title = button.title = "click expand options";
input.style.cursor = button.style.cursor = "default";
input.className = button.className = ctlStyle;
input.style.width = (width>0 ? width : object.offsetWidth);
height ? input.style.height=button.style.height=height : "";
input.value = object[0].text;
if( readonly==true ) input.readOnly=true;</P>
<P> // this method is only IE.
object.insertAdjacentElement("afterEnd",button);
object.insertAdjacentElement("afterEnd",input);
object.style.display = 'none';
}};
simulateSelect.prototype.expand = function(ctlSelID, offset) { with(this)
{
var div, btn_off;
var object = $(ctlSelID);</P>
<P> if( !$(containerPrefix + ctlSelID) )
{
div = document.createElement("DIV");
div.style.position = "absolute";
div.style.display = "block";
div.setAttribute("id", containerPrefix + ctlSelID);
div.className = ctlStyle;
div.style.left = offset.left;
div.style.top = offset.top + offset.height;
div.style.width = (width ? width : offset.width) + 20;
div.style.height = offset.height;
document.body.appendChild(div);</P>
<P> for(var i=0; i<object.length; i++)
{
div = document.createElement("DIV");
div.setAttribute("id", div.id = elementPrefix + ctlSelID + i);
div.style.cursor = "default";</P>
<P> if( object[i].text==$(inputPrefix + ctlSelID).value )
div.className = selStyle;
else
div.className = unselStyle;</P>
<P> div.innerText = div.title = object[i].text;
div.style.height = height;
div.setAttribute("value", object[i].value);</P>
<P> div.onmouseover = function()
{
for(var j=0; j<$(containerPrefix + ctlSelID).childNodes.length; j++)
{
if($(containerPrefix + ctlSelID).childNodes[j]==this)
$(containerPrefix + ctlSelID).childNodes[j].className = selStyle;
else
$(containerPrefix + ctlSelID).childNodes[j].className = unselStyle;
}
};
div.onclick = function()
{
$(inputPrefix + ctlSelID).value = this.innerText;
$(containerPrefix + ctlSelID).style.display = "none";
};
$(containerPrefix + ctlSelID).appendChild(div);
}
return;
}</P>
<P> if( $(containerPrefix + ctlSelID).style.display=="none" )
{
for(var i=0; i<object.length; i++)
{
if( object[i].text==$(inputPrefix + ctlSelID).value )
$(elementPrefix + ctlSelID + i).className = selStyle;
else
$(elementPrefix + ctlSelID + i).className = unselStyle;
}
$(containerPrefix + ctlSelID).style.display="block";
return;
}</P>
<P> if( $(containerPrefix + ctlSelID).style.display=="block" )
{
$(containerPrefix + ctlSelID).style.display="none";
return;
}
}};
simulateSelect.prototype.getValue = function(ctlSelID) { with(this)
{
if( $(inputPrefix + ctlSelID) )
return $(inputPrefix + ctlSelID).value;
else
return null;
}};
simulateSelect.prototype.addEvent = function(w, h) { with(this)
{
}};
//-----------------------------------------------
//window.onerror = Function("return true;");
// IE only.
document.attachEvent("onmousedown", function() {
a.checkupOnMouseDown(event);
b.checkupOnMouseDown(event);
c.checkupOnMouseDown(event)
}
);
//-->
</SCRIPT>
<h1> simulate combox control </h1>
<h4> demonstrate </h4></P>
<P><p>
<select id="s0">
<option value="- please select your options -"> - please select your options -</option>
<option value="1">option1</option>
<option value="2">option2</option>
<option value="3">option3</option>
<option value="4">option4</option>
<option value="5">option5</option>
</select>
</p></P>
<P><p>
<select id="s1">
<option value="- please select your options -"> - please select your options -</option>
<option value="1">1option1</option>
<option value="2">1option2</option>
<option value="3">1option3</option>
<option value="4">1option4</option>
<option value="5">1option5</option>
</select>
</p></P>
<P><p>
<select id="s2">
<option value="- please select your options -"> - please select your options -</option>
<option value="1">2option1</option>
<option value="2">2option2</option>
<option value="3">2option3</option>
<option value="4">2option4</option>
<option value="5">2option5</option>
</select>
</p></P>
<P><p>
<select id="s3">
<option value="- please select your options -"> - please select your options -</option>
<option value="1">3option1</option>
<option value="2">3option2</option>
<option value="3">3option3</option>
<option value="4">3option4</option>
<option value="5">3option5</option>
</select>
</p></P>
<P><button onclick="alert(a.getValue('s1') + '\n\n' + b.getValue('s2'))" class="CtlSelect"> Get value </button></P>
<P><SCRIPT LANGUAGE="JavaScript">
<!--
var a = new simulateSelect();
a.style("CtlSelect", "selected", "unselected");
a.init("s1");
var b = new simulateSelect();
b.style("CtlSelect1", "selected1", "unselected1");
b.width = 300;
b.init("s2");
var c = new simulateSelect();
c.style("CtlSelect2", "selected2", "unselected2");
c.width = 320;
c.init("s3");
//-->
</SCRIPT></P>
<P><h4> description </h4>
<pre>
//-------------------------------------------------------------
// @ Module: simulate select control, IE only.
// @ Debug in: IE 6.0
// @ Script by: blueDestiny, never-online
// @ Updated: 2006-3-22
// @ Version: 1.0 apha
// @ Email: blueDestiny [at] 126.com
// @ Website: http://www.never-online.net
// @ Please Hold this item please.
//
// API
// @ simulateSelect(ctlSelIDs)
// ctlSelIDs: select control IDs, split by ","
//
// @ simulateSelect.style(ctlStyle[,selStyle][,unselStyle])
// ctlStyle: main control combox css class name
// selStyle: when mouseover or option focus css class name
// unselStyle: options blur's css class name
//
// @ simulateSelect.width=(widthPX)
// widthPX must be a digit number.
//
// @ simulateSelect.height=(heightPX)
// heightPX must be a digit number.
//
// -------------- for the next Version ----------
// @ simulateSelect.readOnly = (blnReadOnly)
// blnReadOnly must be a boolean type or a number type.
// @ simulateSelect.addEvent(w, h)
// w: fire handler's event.
// h: handler function.
//-------------------------------------------------------------
</pre></P>
<P><div class="copyright">
Power By blueDestiny, never-online
http://www.never-online.net
</div>
</BODY>
</HTML>
分享到:
相关推荐
本资源"jquery美化下拉列表.rar"显然是一个关于如何使用jQuery来提升下拉列表视觉效果的示例集。 jQuery美化下拉列表的核心是利用jQuery插件来替代或扩展原生HTML元素的功能和样式。这些插件通常会提供自定义的CSS...
此时,jQuery插件ddlist应运而生,它是一款专门用于美化下拉列表菜单的工具,旨在提升用户交互体验并增强下拉列表的功能。 **一、ddlist插件的主要特点** 1. **图标支持**:ddlist允许开发者为每个选项添加图标,...
青蛙实战之用JS+CSS和图片美化下拉列表选择框(select) 青蛙实战之用JS+CSS和图片美化下拉列表选择框(select)
1、注册JS库; 2、使用闭包; 3、取标签的绝对位置
2. **自定义下拉列表**:通过设置`DropDownStyle`属性为`DropDownList`或`Simple`,可以改变下拉列表的行为。例如,`DropDownList`只允许用户从列表中选择,而`Simple`则允许用户同时输入文本。 3. **添加动画效果*...
为了美化下拉列表,我们可以从以下几个方面入手: 1. **颜色和大小调整**:Bootstrap提供了多种预定义的按钮类(如`btn-primary`, `btn-success`, `btn-info`, `btn-warning`, `btn-danger`)来改变按钮颜色。同时...
最后,`images`文件夹可能包含了一些图标或图形资源,用于美化下拉列表或增强其功能,例如搜索图标、加载指示器等。 总之,这款JavaScript下拉列表组件提供了一种高效、灵活的解决方案,以满足各种网页应用中的选择...
3. **img**:这个文件夹可能包含一些用于美化下拉列表框的图像资源,如背景图片或图标。这些图片可能会被CSS引用,以增强视觉效果。 4. **js**:这个文件夹包含JavaScript代码,可能命名为`script.js`。这个文件...
**jQuery美化下拉列表特效代码详解** 在网页设计中,下拉列表(Dropdown List)是一种常见的用户交互元素,用于提供多个选项供用户选择。然而,原生HTML的下拉列表样式通常较为简单,可能无法满足现代网页设计的...
为了美化下拉列表,JavaScript可能需要动态地修改元素的CSS属性,如背景色、字体、边框、内边距等,以达到一致的设计风格。 6. **键盘导航** 为了提供无障碍访问,优化的下拉列表还应支持键盘导航,如使用上下...
2. CSS:用于美化下拉列表框的样式,使其符合界面设计,还可以处理鼠标悬停、选中等状态。 3. JavaScript/jQuery:添加交互功能,监听用户的输入和选择,可能使用事件监听器如`change`、`input`等,以及可能的AJAX...
总的来说,"纯JS炫酷下拉列表框美化插件pickout"是一个有助于提升网页用户体验的工具,通过JavaScript实现,提供了一种无需依赖其他库的美化下拉列表框的解决方案。开发者可以借此增强网页的互动性和美观性,同时...
`images`文件夹可能包含了用于美化下拉列表的图像资源,如下拉箭头图标等。这些图片可以通过CSS的`background-image`属性应用到我们的模拟下拉列表元素上。 `js`文件夹可能包含了一个名为`select.js`或类似的...
总的来说,"Gabin的省份城市下拉列表"资源提供了一种实现动态交互式省份城市选择的方法,涉及到了HTML、CSS(虽然未提及,但在实际应用中可能会用到,用于美化下拉列表样式)以及JavaScript技术。对于初学者或希望...
"下拉列表框美化"这一主题,主要是指通过特定的技术手段改进标准Combobox控件的外观,使其更加吸引人,提升用户体验。在这个过程中,"贴图"是一种常用的方法,它是指将图像应用到控件表面,以改变其视觉效果。 ...
为了提升用户体验和界面美观性,开发者会使用JavaScript和CSS来实现美化下拉列表框的效果。本文将详细讲解如何通过这两种技术实现这一目标。 首先,我们来看CSS在美化下拉列表框中的作用。CSS主要负责改变下拉列表...
在现代网页设计中,select下拉列表是实现用户交互的一项基本元素,但在不同的浏览器中,其样式表现差异较大,且在自定义样式方面存在限制,尤其是无法完全通过CSS控制其外观。随着Web标准的推进,浏览器厂商对HTML...
4. **CSS样式**:使用CSS来美化下拉列表,如设置字体、颜色、边框、背景等,还可以创建自定义的下拉箭头图标。 5. **jQuery辅助**:使用jQuery的选择器快速定位DOM元素,使用`.on()`方法绑定事件,使用`.html()`或`...
此外,还可以使用CSS美化下拉列表,使其更具吸引力。 通过以上步骤,我们可以构建一个基本的搜索框下拉列表功能。在实际项目中,可能还需要考虑错误处理、安全性和性能优化等更多细节。在提供的压缩包文件"JSP搜索...