JS+CSS實(shí)現(xiàn)美化的下拉列表框效果
本文實(shí)例講述了JS+CSS實(shí)現(xiàn)美化的下拉列表框效果。分享給大家供大家參考。具體如下:
一款經(jīng)過JS+CSS美化的下拉列表,效果很不錯,但代碼有點(diǎn)偏多,學(xué)習(xí)CSS的朋友可以學(xué)習(xí)一下方法,然后自己變通一下,把代碼簡化一下。
運(yùn)行效果如下圖所示:
具體代碼如下:
<!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=gb2312" /> <title>JS+CSS下拉列表</title> <style type="text/css"> body{ font-size:12px; margin:0 } .center{ margin-left:auto; margin-right:auto; margin-top:200px; width:300px;} #age_sel_2 div.tag_select{display:block;color:#000;width:62px;height:22px;background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat 0 0;padding:0 10px;line-height:22px;} #age_sel_2 div.tag_select_hover{display:block;color:#000;width:62px;height:22px;background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat 0 -22px;padding:0 10px;line-height:22px;} #age_sel_2 div.tag_select_open{display:block;color:#000;width:62px;height:22px;background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat 0 -44px;padding:0 10px;line-height:22px;} #age_sel_2 ul.tag_options{position:absolute;margin:0;list-style:none;background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat left bottom;padding:0 0 1px;margin:0;width:60px;} #age_sel_2 ul.tag_options li{background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") repeat-y -102px 0;display:block;width:61px;padding:0 10px;height:22px;text-decoration:none;line-height:22px;color:#000;} #age_sel_2 ul.tag_options li.open_hover{background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat 0 -88px;color:#000} #age_sel_2 ul.tag_options li.open_selected{background:transparent url("http://img.jbzj.com/file_images/article/201508/2015811145849095.gif") no-repeat 0 -66px;color:#19555F} </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> </head> <body> <div class="center"> <div id="age_sel_2"> <select name="area_selet2" id="area_select2"> <option value="請選擇">請選擇</option> <option value="ASP" >ASP</option> <option value="PHP" >PHP</option> <option value=".NET" >.NET</option> <option value="Csharp" >Csharp</option> <option value="Delphi" >Delphi</option> <option value="Java" >Java</option> </select> </div> </div> </body> </html>
希望本文所述對大家的javascript程序設(shè)計(jì)有所幫助。
- JS+CSS實(shí)現(xiàn)下拉列表框美化效果(3款)
- JavaScript實(shí)現(xiàn)下拉列表框數(shù)據(jù)增加、刪除、上下排序的方法
- JS顯示下拉列表框內(nèi)全部元素的方法
- javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年
- js操縱dom生成下拉列表框的方法
- JS,Jquery獲取select,dropdownlist,checkbox下拉列表框的值(示例代碼)
- js獲取下拉列表框<option>中的value和text的值示例代碼
- javascript對下拉列表框(select)的操作實(shí)例講解
- js Select下拉列表框進(jìn)行多選、移除、交換內(nèi)容的具體實(shí)現(xiàn)方法
- javascript獲取下拉列表框當(dāng)中的文本值示例代碼
- JS設(shè)置下拉列表框當(dāng)前所選值的方法
相關(guān)文章
深入探討JavaScript異步編程中Promise的關(guān)鍵要點(diǎn)
這篇文章將全面深入地探討Promise,包括其前身、歷史、能力、優(yōu)點(diǎn)、缺點(diǎn)以及提供每個方法的案例,感興趣的小伙伴可以跟隨小編一學(xué)習(xí)一下2023-06-06深入理解 TypeScript Reflect Metadata
這篇文章主要介紹了深入理解 TypeScript Reflect Metadata,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12JS中的算法與數(shù)據(jù)結(jié)構(gòu)之常見排序(Sort)算法詳解
這篇文章主要介紹了JS中的算法與數(shù)據(jù)結(jié)構(gòu)之常見排序(Sort)算法,結(jié)合實(shí)例形式詳細(xì)分析了js常見排序算法中的冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序等算法相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-08-08JavaScript設(shè)置FieldSet展開與收縮
JavaScript設(shè)置FieldSet展開與收縮實(shí)現(xiàn)代碼。2009-05-05axios利用params/data發(fā)送參數(shù)給springboot?controlle的正確獲取方式
這篇文章主要給大家介紹了關(guān)于axios利用params/data發(fā)送參數(shù)給springboot?controlle的正確獲取方式,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02