- 浏览: 3270 次
文章分类
最新评论
近几天公司需要美化一个select下拉列表,在这记录下以便以后使用,js部分我已经封装成对象了,只用在html页面new 一下带上 标签的name值就可以使用了,是不是很方便呢!select的样式大小图片背景都可以随意修改,只需要修改css样式就好了!
下面开始贴代码了:
html:
下面是css样式部分:
下面是js部分:
下面开始贴代码了:
html:
<!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=utf-8" /> <link href="css/base.css" rel="stylesheet" type="text/css"/> <link href="css/importselect.css" rel="stylesheet" type="text/css"/> <title>select dom</title> <script type="text/javascript" src="js/importselect.js"></script> <script type="text/javascript"> window.onload=function (){ new selectStyle('area_selet2'); new selectStyle('area_selet1'); }; </script> </head> <body> <div class="center"> <div id="age_sel_2"> <select name="area_selet2"> <option value="请选择">请选择</option> <option value="ASP" >ASP</option> <option value="PHP" >PHP</option> <option value=".NET" >.NET</option> </select> </div> </div> <div class="center"> <div id="age_sel_2"> <select name="area_selet1"> <option value="请选择">请选择</option> <option value="ASP" >ASP</option> <option value="PHP" >PHP</option> <option value=".NET" >.NET</option> </select> </div> </div> </body> </html>
下面是css样式部分:
html{background:#fff;} .center{ margin-left:auto; margin-right:auto; margin-top:10px; width:300px;position:relative;} #age_sel_2 div.tag_select{display:block;width:141px;height:36px;line-height:36px; float:left; color:#fff; text-align:center; font-size:12px;} #age_sel_2 div.tag_select_hover{display:block;width:141px;height:36px;line-height:36px;float:left; color:#fff; text-align:center; font-size:12px;} #age_sel_2 div.tag_select_open{display:block;color:#fff;width:141px;height:36px;line-height:36px;text-align:center;font-size:12px;float:left;} #age_sel_2 ul.tag_options{width:136px;font-size:12px;color:#fff;line-height:36px;text-align:center;float:left;border:1px solid #37A2DA;border-top:0;background:#39A9FE;position:absolute;left:43px; top:33px;} #age_sel_2 ul.tag_options li{display:block;width:136px;height:36px;text-decoration:none;} #age_sel_2 ul.tag_options li.open_hover{background:#2174B7;color:#fff;} #age_sel_2 ul.tag_options li.open_selected{background:#B2DBFC;color:#000;} .select_box{background:url(../images/select02.gif) no-repeat;width:181px; height:36px;} .select_txt{width:40px; height:36px;font-size:12px;color:#fff;line-height:36px;text-align:center;float:left;} .select_fh{background:url(../images/select01.png) -17px 0 no-repeat;width:13px;height:16px;position:absolute;left:155px;top:11px;} .select_fh_on{background:url(../images/select01.png) 0 0 no-repeat;width:16px;height:14px;position:absolute;left:155px;top:11px;}
下面是js部分:
function selectStyle(name){ this.selects = document.getElementsByName(name); isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false; this.rSelects(); }; selectStyle.prototype.stopBubbling=function (ev) { ev.stopPropagation() }; //定义$为获取id写法 function $(id) { return document.getElementById(id) }; //加载dom元素 selectStyle.prototype.rSelects=function () { for (i=0;i<this.selects.length;i++){ this.selects[i].style.display = 'none'; select_tag = document.createElement('div'); select_tag.id = 'select_' + this.selects[i].name; select_tag.className = 'select_box'; this.selects[i].parentNode.insertBefore(select_tag,this.selects[i]); select_text = document.createElement('div'); select_text.className='select_txt'; select_text.innerHTML='姓名'; select_tag.appendChild(select_text); select_fh = document.createElement('div'); select_fh.className='select_fh'; select_fh.id='select_fh'; select_tag.appendChild(select_fh); select_info = document.createElement('div'); select_info.id = 'select_info_' + this.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_' + this.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); this.rOptions(i,this.selects[i].name); this.mouseSelects(this.selects[i].name); if (isIE){ this.selects[i].onclick = new Function("clickLabels3('"+this.selects[i].name+"');window.event.cancelBubble = true;"); } else if(!isIE){ this.selects[i].onclick = new Function("clickLabels3('"+this.selects[i].name+"')"); this.selects[i].addEventListener("click", this.stopBubbling, false); } } } selectStyle.prototype.rOptions=function (i, name) { var _this=this; var options = this.selects[i].getElementsByTagName('option'); var options_ul = 'options_' + name; for (n=0;n<this.selects[i].options.length;n++){ option_li = document.createElement('li'); option_li.style.cursor='pointer'; option_li.index=n; option_li.className='open'; $(options_ul).appendChild(option_li); option_text = document.createTextNode(this.selects[i].options[n].text); option_li.appendChild(option_text); option_selected = this.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 =function(){_this.clickOptions(i,this.index,_this.selects[i].name)};//new Function("this.clickOptions("+i+","+n+",'"+this.selects[i].name+"')"); } } selectStyle.prototype.mouseSelects=function (name){ var _this=this; var sincn = 'select_info_' + name; if (isIE){ $(sincn).onclick = function(){_this.clickSelects(name);window.event.cancelBubble=true;};// new Function("_this.clickSelects('"+name+"');window.event.cancelBubble = true;"); } else if(!isIE){ $(sincn).onclick = function(){_this.clickSelects(name)}; $('select_info_' +name).addEventListener("click", this.stopBubbling, false); } } //点击下拉列表事件 selectStyle.prototype.clickSelects=function (name){ var sincn = 'select_info_' + name; var sinul = 'options_' + name; for (i=0;i<this.selects.length;i++){ if(this.selects[i].name == name){ if( $(sincn).className =='tag_select'){ $(sincn).className ='tag_select_open'; $(sinul).style.display = ''; } else if( $(sincn).className =='tag_select_open'){ $(sincn).className = 'tag_select'; $(sinul).style.display = 'none'; } } else{ $('select_info_' + this.selects[i].name).className = 'tag_select'; $('options_' + this.selects[i].name).style.display = 'none'; } } } //选项点击事件 selectStyle.prototype.clickOptions=function (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)); this.mouseSelects(name); $('select_info_' + name).appendChild(document.createTextNode(li[n].innerHTML)); $( 'options_' + name ).style.display = 'none' ; $( 'select_info_' + name ).className = 'tag_select'; this.selects[i].options[n].selected = 'selected'; }
相关推荐
在网页设计中,"jquery+css3美化select下拉列表框特效"是一个常见的需求,它旨在提升用户体验,使传统的HTML `<select>` 元素看起来更加现代和吸引人。本项目结合了JavaScript库jQuery和CSS3的新特性,为下拉列表框...
通过上述的方法,开发者可以解决select下拉列表在不同浏览器下默认样式不一致的问题,并通过JavaScript为用户提供更加美观和友好的交互体验。同时,使用这种方法也可以增强select的功能,比如添加搜索功能,支持多选...
综上所述,通过结合JavaScript和CSS,我们可以对`select`下拉列表选择框进行深度美化,包括调整基本样式、添加自定义图片,甚至实现复杂的交互效果。在`select美化选择框.htm`这个示例文件中,我们可以看到一个完整...
本资源"select下拉菜单美化.rar"可能包含了一套用于改善默认select菜单外观的JavaScript库或者CSS样式集,旨在提供更加美观、交互性更强的下拉选择体验。 通常,这种美化方法会涉及到以下几个关键知识点: 1. **...
基于jQuery美化的JS Select下拉列表菜单,官方已封装成了现成的插件,鼠标点击下拉菜单的向下箭头后,有感动的滚动效果,用jQuery制作下拉框,很是方便,希望大家喜欢。
**jQuery和CSS3超赞Select下拉列表框美化插件详解** 在网页设计中,Select元素通常是用来创建下拉选择菜单的,但其默认样式在许多浏览器中并不统一,有时显得较为简陋。为了提升用户体验和界面美观度,开发者经常...
`js`文件夹中的JavaScript代码则是实现下拉列表功能的核心。JavaScript库可能包含了以下功能: 1. **列表搜索功能**:用户可以在输入框中输入关键词,快速过滤出匹配的选项。这通常是通过监听键盘事件,实时更新...
今天特意给大家推荐一款可以美化select下拉列表的插件——jquery.custom-select.js 只有十几KB大小,完全不影响网速加载 使用方法: 1、将head中的css样式引入到你的页面中 2、将body中的代码部分...
本文将深入探讨如何通过CSS和JavaScript技术来重新定义和美化select元素,打破其默认样式带来的限制。 一、基本概念 1. Select元素:在HTML中,`<select>`标签用于创建一个下拉列表,用户可以从预定义的选项中进行...
2. **jQuery插件**:学习如何使用和编写jQuery插件,如Chosen、Select2、Selectize等,这些插件专门用于美化下拉列表。 3. **Chosen插件**:Chosen是一个流行的jQuery插件,它可以将普通的`<select>`元素转变为易于...
"手动样式仿select下拉列表框"就是一个这样的实践,它通过CSS和JavaScript等技术,使得原本样式单一的SELECT元素变得更为美观、交互性强。 在传统的HTML中,SELECT元素用于创建下拉列表,但其默认样式受到浏览器的...
2. **Mac 风格select框**:Mac风格的select框模仿了苹果系统中的下拉列表样式,可能包括半透明背景、圆角和特定的字体样式。这种风格的实现需要对按钮和选项列表进行精细的定制,以保持与苹果界面的一致性。此外,...
3. **JavaScript交互**:为了让选择后的颜色和状态在页面上可见,我们需要使用JavaScript(这里使用jQuery库,因为`jquery-2.0.js`被包含在文件列表中)。当用户改变选择时,更新显示区域的颜色和文本。 ```...
在这个项目中,我们看到的是如何利用这两者以及JavaScript来实现一个炫酷的Select下拉菜单美化效果。让我们深入探讨一下这些技术及其在创建这种效果时的应用。 首先,HTML5的`<select>`元素是网页表单中常见的组件...
因此,为了实现更为灵活和可定制化的下拉列表特效,开发者们通常会采用JavaScript来模拟select下拉列表的行为,同时使用CSS来控制下拉列表的视觉表现。 在本例中,我们首先可以看到使用了HTML标签来设置网页的字符...
这篇博客"支持选择和输入的select下拉列表"可能详细介绍了如何实现这样一个功能。虽然具体的内容没有提供,但我们可以根据这个主题推测文章可能涵盖了以下知识点: 1. **HTML基础**:讲解了`<select>`、`<option>`...
通过以上介绍,我们可以了解到"js下拉列表效果"这个项目旨在解决低版本IE浏览器下下拉列表的美化问题,通过JavaScript实现了定制化、交互友好的下拉列表,提升了用户在网页中的交互体验。项目的实现涉及到JavaScript...
2. **CSS美化**:为了改变默认的下拉列表样式,我们需要用CSS来覆盖浏览器自带的样式。可以定义字体、颜色、背景、边框等属性,甚至可以创建自定义的下拉箭头。同时,对于四级菜单,可能需要设定更复杂的布局规则,...
青蛙实战之用JS+CSS和图片美化下拉列表选择框(select) 青蛙实战之用JS+CSS和图片美化下拉列表选择框(select)