演示

Select col1...

代码

<div class="selectly" id="s1">
Select col1...
</div>
<select class="select" name="select" id="select" style="opacity:0; filter:alpha(opacity=0);" onChange="s1.innerHTML=this.value">
<option value="Select col1...">Select col1...</option>
<option value="1111">1111</option>
<option value="22222">22222</option>
<option value="333">333</option>
</select>

原创,来自工作中总结代码最精简,样式最精简,基于jquery非常适合二次开发

来自日常工作中的整理,使用频率比较高的一个代码范例。 遇到的时候不太好找,所以要收藏哦。

演示

MAINLAND CHINA
ASIA
EUROPE
AMERICA
AFRICA

代码

<div class="selectxy">
<div class="selectxy-head">MAINLAND CHINA</div>
<div class="selectxy-body">
<div class="selectxy-option">ASIA</div>
<div class="selectxy-option">EUROPE</div>
<div class="selectxy-option">AMERICA</div>
<div class="selectxy-option">AFRICA</div>
</div>
<input name="" type="hidden" value="" id="selectxy" />
</div>

不错的JS模拟下拉菜单,来自互联网比较繁琐,不过比较全面,适合效果直接套用。切记,本特效基于javascript,所以js务必写到html的后面,即</body>之前

来自日常工作中的整理,使用频率比较高的一个代码范例。 遇到的时候不太好找,所以要收藏哦。

演示

代码

var ____configArray;
function __initDropDownList(configArray){
//获取Select菜单
____configArray=configArray;
var existArray=configArray.split("|");
for(var i=0;i<existArray.length;i++){
if(existArray[i].length<1){return;}
//根据参数分别获取div,并分别添加事件
var parentContainer=document.getElementById(existArray[i]);
if(!parentContainer){return;}
//获取下面的select,且获取其中的option
var selectObj=parentContainer.getElementsByTagName("select");
if(selectObj.length<1){return;}
var optionArray=selectObj[0].getElementsByTagName("option");
//获取option,并分别添加到各个li
var optionLength=optionArray.length;
for(var j=0;j<optionLength;j++){
//获取ul,以便能够添加项目
var ulObj=parentContainer.getElementsByTagName("ul");
if(ulObj.length<1){return;}
//获取span,以便能显示当前选择的项目
var spanObj=parentContainer.getElementsByTagName("span");
if(spanObj.length<1){return;}
var liObj=document.createElement("li");
var textNode=document.createTextNode(optionArray[j].firstChild.nodeValue)
liObj.appendChild(textNode);
liObj.setAttribute("currentIndex",j);
//给每个liObj添加事件
liObj.onclick=function(){
selectCurrentItem(this.parentNode,this);
}
liObj.onmouseover=function(){this.className="over";}
liObj.onmouseout=function(){this.className="";}
ulObj[0].appendChild(liObj);
spanObj[0].onclick=function(event){
//如果当前是显示的,就隐藏,反之亦然
showHiddenUl(this);
}
spanObj[0].onmouseover=function(){this.className='over';}
spanObj[0].onmouseout=function(){this.className="";};
ulObj[0].onclick=function(){this.className="";}
}
parentContainer.onclick=function(event){
if(!event){event=window.event;}
//阻止事件冒泡
event.cancelBubble=true;
var eventUlObj=this.getElementsByTagName("ul")[0];
bodyClickHiddenUl(eventUlObj);
}
}
}
function selectCurrentItem(ulObj,currentObj){
var parentObj=ulObj.parentNode;
var spanObj=parentObj.getElementsByTagName("span")[0];
spanObj.firstChild.nodeValue=currentObj.firstChild.nodeValue;
var selectObj=parentObj.getElementsByTagName("select")[0];
selectObj.selectedIndex=parseInt(currentObj.getAttribute("currentIndex"));
}
function showHiddenUl(currentObj){
var parentNode=currentObj.parentNode;
var ulObj=parentNode.getElementsByTagName("ul")[0];
if(ulObj.className==""){
ulObj.className="show";
}else{
ulObj.className="";
}
}
//点击body区域(非“下拉菜单”)隐藏菜单
function addBodyClick(func) {
var bodyObj=document.getElementsByTagName("body")[0];
var oldBodyClick = bodyObj.onclick;
if (typeof bodyObj.onclick != 'function') {
bodyObj.onclick = func;
} else {
bodyObj.onclick = function() {
oldBodyClick();
func();
}
}
}
//隐藏所有的UL
function bodyClickHiddenUl(eventUlObj){
var existArray=____configArray.split("|");
for(var i=0;i<existArray.length;i++){
if(existArray[i].length<1){return;}
//寻找所有UL并且隐藏
var parentContainer=document.getElementById(existArray[i]);
if(!parentContainer){return;}
var ulObj=parentContainer.getElementsByTagName("ul");
if(eventUlObj!=ulObj[0]){
ulObj[0].className="";
}
}
}
var __dropDownList="dropDownList1|dropDownList2|dropDownList3";
__initDropDownList(__dropDownList);
//添加这个可以确保点击body区域的时候也可以隐藏菜单
addBodyClick(bodyClickHiddenUl);