<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>Select Demo</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<STYLE type=text/css>
BODY {
  BACKGROUND: #cfdfef; FONT: 12px/150% "Lucida Grande", Arial, Verdana, Helvetica, sans-serif
}
#uboxstyle .select_box {
  WIDTH: 250px; HEIGHT: 24px
}
#uboxstyle DIV.tag_select {
  PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; WIDTH: 230px; COLOR: #79a2bd; LINE-HEIGHT: 24px; PADDING-TOP: 0px; HEIGHT: 24px
}
#uboxstyle DIV.tag_select_hover {
  PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat 0px -24px; PADDING-BOTTOM: 0px; WIDTH: 230px; COLOR: #79a2bd; LINE-HEIGHT: 24px; PADDING-TOP: 0px; HEIGHT: 24px
}
#uboxstyle DIV.tag_select_open {
  PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat 0px -48px; PADDING-BOTTOM: 0px; WIDTH: 230px; COLOR: #79a2bd; LINE-HEIGHT: 24px; PADDING-TOP: 0px; HEIGHT: 24px
}
#uboxstyle UL.tag_options {
  PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat right bottom; PADDING-BOTTOM: 5px; MARGIN: 0px; WIDTH: 250px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; POSITION: absolute
}
#uboxstyle UL.tag_options LI {
  PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) repeat-y -250px 0px; PADDING-BOTTOM: 0px; WIDTH: 230px; COLOR: #79a2bd; LINE-HEIGHT: 24px; PADDING-TOP: 0px; HEIGHT: 24px; TEXT-DECORATION: none
}
#uboxstyle UL.tag_options LI.open_hover {
  BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat 0px -72px; COLOR: #fff
}
#uboxstyle UL.tag_options LI.open_selected {
  BACKGROUND: url(http://www.geekso.com/attachment/ubox-select.gif) no-repeat 0px -96px; COLOR: #fff
}
</STYLE>
<SCRIPT>
var selects = document.getElementsByTagName('select');
var isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false;
function $(id) {
  return document.getElementById(id);
}
function stopBubbling (ev) { 
  ev.stopPropagation();
}
function rSelects() {
  for (i=0;i<selects.length;i++){
    selects[i].style.display = 'none';
    select_tag = document.createElement('div');
      select_tag.id = 'select_' + selects[i].name;
      select_tag.className = 'select_box';
    selects[i].parentNode.insertBefore(select_tag,selects[i]);
    select_info = document.createElement('div'); 
      select_info.id = 'select_info_' + selects[i].name;
      select_info.className='tag_select';
      select_info.style.cursor='pointer';
    select_tag.appendChild(select_info);
    select_ul = document.createElement('ul'); 
      select_ul.id = 'options_' + selects[i].name;
      select_ul.className = 'tag_options';
      select_ul.style.position='absolute';
      select_ul.style.display='none';
      select_ul.style.zIndex='999';
    select_tag.appendChild(select_ul);
    rOptions(i,selects[i].name);
   
    mouseSelects(selects[i].name);
    if (isIE){
      selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"');window.event.cancelBubble = true;");
    }
    else if(!isIE){
      selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"')");
      selects[i].addEventListener("click", stopBubbling, false);
    }   
  }
}
function rOptions(i, name) {
  var options = selects[i].getElementsByTagName('option');
  var options_ul = 'options_' + name;
  for (n=0;n<selects[i].options.length;n++){ 
    option_li = document.createElement('li');
      option_li.style.cursor='pointer';
      option_li.className='open';
    $(options_ul).appendChild(option_li);
    option_text = document.createTextNode(selects[i].options[n].text);
    option_li.appendChild(option_text);
    option_selected = selects[i].options[n].selected;
    if(option_selected){
      option_li.className='open_selected';
      option_li.id='selected_' + name;
      $('select_info_' + name).appendChild(document.createTextNode(option_li.innerHTML));
    }
   
    option_li.onmouseover = function(){  this.className='open_hover';}
    option_li.onmouseout = function(){
      if(this.id=='selected_' + name){
        this.className='open_selected';
      }
      else {
        this.className='open';
      }
    }
 
    option_li.onclick = new Function("clickOptions("+i+","+n+",'"+selects[i].name+"')");
  }
}
function mouseSelects(name){
  var sincn = 'select_info_' + name;
  $(sincn).onmouseover = function(){ if(this.className=='tag_select') this.className='tag_select_hover'; }
  $(sincn).onmouseout = function(){ if(this.className=='tag_select_hover') this.className='tag_select'; }
  if (isIE){
    $(sincn).onclick = new Function("clickSelects('"+name+"');window.event.cancelBubble = true;");
  }
  else if(!isIE){
    $(sincn).onclick = new Function("clickSelects('"+name+"');");
    $('select_info_' +name).addEventListener("click", stopBubbling, false);
  }
}
function clickSelects(name){
  var sincn = 'select_info_' + name;
  var sinul = 'options_' + name; 
  for (i=0;i<selects.length;i++){ 
    if(selects[i].name == name){       
      if( $(sincn).className =='tag_select_hover'){
        $(sincn).className ='tag_select_open';
        $(sinul).style.display = '';
      }
      else if( $(sincn).className =='tag_select_open'){
        $(sincn).className = 'tag_select_hover';
        $(sinul).style.display = 'none';
      }
    }
    else{
      $('select_info_' + selects[i].name).className = 'tag_select';
      $('options_' + selects[i].name).style.display = 'none';
    }
  }
}
function clickOptions(i, n, name){   
  var li = $('options_' + name).getElementsByTagName('li');
  $('selected_' + name).className='open';
  $('selected_' + name).id='';
  li[n].id='selected_' + name;
  li[n].className='open_hover';
  $('select_' + name).removeChild($('select_info_' + name));
  select_info = document.createElement('div');
    select_info.id = 'select_info_' + name;
    select_info.className='tag_select';
    select_info.style.cursor='pointer';
  $('options_' + name).parentNode.insertBefore(select_info,$('options_' + name));
  mouseSelects(name);
  $('select_info_' + name).appendChild(document.createTextNode(li[n].innerHTML));
  $( 'options_' + name ).style.display = 'none' ;
  $( 'select_info_' + name ).className = 'tag_select';
  selects[i].options[n].selected = 'selected';
}
window.onload = function(e) {
  bodyclick = document.getElementsByTagName('body').item(0);
  rSelects();
  bodyclick.onclick = function(){
    for (i=0;i<selects.length;i++){ 
      $('select_info_' + selects[i].name).className = 'tag_select';
      $('options_' + selects[i].name).style.display = 'none';
    }
  }
}
</SCRIPT>
<META content="MSHTML 6.00.2900.3199" name=GENERATOR>
</HEAD><BODY>
<FORM id=form name=form action="" method=post>
  <BR>
  <BR>
  <DIV id=uboxstyle>
    <SELECT id=language name=language>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>
      <OPTION value=English selected>2121</OPTION>    </SELECT>
  </DIV>
  <BR>
  <BR> 
</FORM>
</BODY>
</HTML>
怎么修改才能把下拉菜单的滚动条显示出来?

解决方案 »

  1.   

    设定个高度 overflow-y:auto;超出高度应该就会显示滚动条,
    或者判断 是否达到指定高度,达到时overflow-y:scroll;
      

  2.   

    function rSelects() {
      for (i=0;i<selects.length;i++){
        selects[i].style.display = 'none';
        select_tag = document.createElement('div');
          select_tag.id = 'select_' + selects[i].name;
          select_tag.className = 'select_box';
        selects[i].parentNode.insertBefore(select_tag,selects[i]);
        select_info = document.createElement('div'); 
          select_info.id = 'select_info_' + selects[i].name;
          select_info.className='tag_select';
          select_info.style.cursor='pointer';
        select_tag.appendChild(select_info);
        select_ul = document.createElement('ul'); 
          select_ul.id = 'options_' + selects[i].name;
          select_ul.className = 'tag_options';
          select_ul.style.position='absolute';
          select_ul.style.display='none';
          select_ul.style.zIndex='999';
        select_tag.appendChild(select_ul);
        rOptions(i,selects[i].name);
       
        mouseSelects(selects[i].name);
        if (isIE){
          selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"');window.event.cancelBubble = true;");
        }
        else if(!isIE){
          selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"')");
          selects[i].addEventListener("click", stopBubbling, false);
        }   
      }
    }
    好多代码。。把样式'tag_select'修改下,heigth:100px;overflow:auto;