var childCreate = false; function Offset(e) { //取标签的绝对位置 var t = e.offsetTop; var l = e.offsetLeft; var w = e.offsetWidth; var h = e.offsetHeight - 2; while ( e = e.offsetParent) { t += e.offsetTop; l += e.offsetLeft; } return { top : t, left : l, width : w, height : h } } function loadselect(obj) { //第一步:取得select所在的位置 var offset = Offset(obj); //第二步:将真的select隐藏 obj.style.display = "none"; //第三步:虚拟一个div出来代替select var iDiv = document.createElement("div"); iDiv.id = "selectof" + obj.name; iDiv.style.position = "absolute"; iDiv.style.width = offset.width + "px"; iDiv.style.height = offset.height + "px"; iDiv.style.top = offset.top + 4 + "px"; iDiv.style.left = offset.left + 4 + "px"; iDiv.style.background = "url('test.png') no-repeat right -6px"; iDiv.style.border = "1px solid #ccc"; iDiv.style.fontSize = "12px"; iDiv.style.lineHeight = offset.height + "px"; iDiv.style.textIndent = "4px"; document.body.appendChild(iDiv); //第四步:将select中默认的选项显示出来 var tValue = obj.options[obj.selectedIndex].innerHTML; iDiv.innerHTML = tValue; //第五步:模拟鼠标点击 iDiv.style.background = "url('images/select.jpg') no-repeat right -2px"; iDiv.onclick = function() {//鼠标点击 if (document.getElementById("selectchild" + obj.name)) { //判断是否创建过div if (childCreate) { //判断当前的下拉是不是打开状态,如果是打开的就关闭掉。是关闭的就打开。 document.getElementById("selectchild" + obj.name).style.display = "none"; childCreate = false; } else { document.getElementById("selectchild" + obj.name).style.display = ""; childCreate = true; } } else { //初始一个div放在上一个div下边,当options的替身。 var cDiv = document.createElement("div"); cDiv.id = "selectchild" + obj.name; cDiv.style.position = "absolute"; cDiv.style.width = offset.width + "px"; cDiv.style.height = obj.options.length * 20 + "px"; cDiv.style.top = (offset.top + offset.height + 2) + 4+"px"; cDiv.style.left = offset.left + 4+ "px"; cDiv.style.background = "#f7f7f7"; cDiv.style.border = "1px solid silver"; var uUl = document.createElement("ul"); uUl.id = "uUlchild" + obj.name; uUl.style.listStyle = "none"; uUl.style.margin = "0"; uUl.style.padding = "0"; uUl.style.fontSize = "12px"; cDiv.appendChild(uUl); document.body.appendChild(cDiv); childCreate = true; for (var i = 0; i < obj.options.length; i++) { //将原始的select标签中的options添加到li中 var lLi = document.createElement("li"); lLi.id = obj.options[i].value; lLi.style.textIndent = "4px"; lLi.style.height = "20px"; lLi.style.lineHeight = "20px"; lLi.innerHTML = obj.options[i].innerHTML; uUl.appendChild(lLi); } var liObj = document.getElementById("uUlchild" + obj.name).getElementsByTagName("li"); for (var j = 0; j < obj.options.length; j++) { //为li标签添加鼠标事件 liObj[j].onmouseover = function() { this.style.background = "gray"; this.style.color = "white"; } liObj[j].onmouseout = function() { this.style.background = "white"; this.style.color = "black"; } liObj[j].onclick = function() { //做两件事情,一是将用户选择的保存到原始select标签中,要不做的再好看表单递交后也获取不到select的值了。 obj.options.length = 0; obj.options[0] = new Option(this.innerHTML, this.id); //同时我们把下拉的关闭掉。 document.getElementById("selectchild" + obj.name).style.display = "none"; childCreate = false; iDiv.innerHTML = this.innerHTML; } } } } } document.body.onload = function (){ var selects = document.getElementsByTagName("select"); for(var i = 0 ; i < selects.length;i++){ loadselect(selects[i]); } }
相关推荐
本文将深入探讨如何使用JavaScript实现终极美化下拉框,以提升网页的美观度和交互性。 首先,我们了解下拉框的基本结构。在HTML中,下拉框由`<select>`标签定义,其中`<option>`标签用于列出可供选择的选项。例如:...
因此,"js select美化下拉框美化" 成为了一个重要的开发话题。这个主题主要涉及到JavaScript、CSS以及可能的库或框架的应用,以提升下拉框的视觉效果和用户体验。 JavaScript 是实现下拉框美化的关键工具,它可以...
本文件属于文章《javascript实现下拉框表单美化的详细实例教程》的完整代码,在读完原创文章之后可以下载查看代码。代码中有详细的注释说明。html、css、js代码都在同一个文件中。也可以供有需要的朋友在开发中直接...
"美化下拉框自定义插件"就是针对这一需求而设计的一种工具,它通过使用JavaScript库jQuery(jq)来改善默认HTML下拉框的样式和功能,以提供更好的用户体验。这个插件不仅可以对下拉框进行美化,还具有获取value值的...
"带搜索框的jQuery美化下拉框"是一个针对这种需求的插件,它能够帮助开发者轻松实现具有搜索功能的下拉框,不仅提高了用户在选择选项时的效率,还提升了界面的整体美感。 首先,jQuery是一个强大的JavaScript库,它...
【jQuery美化下拉框可筛选插件特效源码】是一个基于JavaScript库jQuery的插件,旨在提升用户体验,通过提供美观的界面和筛选功能,增强下拉框的选择效果。这个插件通常用于网页表单,特别是在需要用户从大量选项中...
1. **引入依赖**:在`index.html`中,你需要引入jQuery库(如果尚未在项目中引入)以及美化下拉框的插件文件,例如`js/jquery.plugin.js`和`css/plugin.css`。 2. **HTML结构**:创建一个标准的`<select>`元素,将...
总的来说,这个“javascript 美化单选 多选和下拉框 最好用的树形下拉框组件”是提高网站表单交互性和用户体验的有效工具,尤其适用于需要处理层次结构数据的场景。通过熟练掌握其使用方法,开发者可以快速构建出...
首先,让我们深入了解一下`jQuery`美化下拉框的概念。默认情况下,浏览器渲染的下拉框样式各不相同,缺乏统一性和美观性。`jQuery`插件可以通过替换DOM结构和应用自定义CSS来改变这种状况。它可能提供各种主题,使得...
《Stylish Select v0.3:jQuery美化下拉框的高效实现》 在Web开发领域,用户体验始终是设计的核心。对于用户界面来说,交互元素的美观与易用性至关重要,其中下拉框(Select)作为常见的表单组件,其样式和功能优化...
首先,我们来探讨JavaScript美化单选按钮和复选框。在网页中,单选按钮和复选框通常用于收集用户的单一或多个选择。然而,原始的HTML元素样式可能并不符合所有设计需求,因此JavaScript可以用来定制这些元素的外观,...
**纯JS超酷Select下拉框美化插件——TastySelect** 在网页设计中,Select下拉框作为数据选择的常见元素,其样式通常由浏览器默认控制,这往往不符合现代网页设计的美观需求。为了解决这个问题,开发者们创造了各种...
这时,我们就需要利用JavaScript库,比如jQuery,来对select下拉框进行美化,提升用户体验。 jQuery是一个轻量级、功能丰富的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。在美化select下拉框...
首先,我们来看“jQuery美化Select下拉框”这个项目的核心目标:通过jQuery库,结合CSS和JavaScript技术,创建一个既美观又功能丰富的下拉框替代方案。这样的设计可以使用户界面更加友好,提升用户体验。 压缩包内...
总的来说,简单下拉框美化涉及到HTML结构、CSS样式以及可能的JavaScript交互。理解并掌握这些技术,将有助于我们创建既美观又实用的下拉框组件,提升网站的整体质量和用户体验。在实践中,不断迭代和优化,结合具体...
4. **美化下拉框**:jQuery本身并不直接提供下拉框美化功能,但我们可以借助第三方插件,如`Chosen`或`Select2`。这些插件可以创建自定义的下拉框样式,并提供搜索、多选等高级功能。不过,由于原始描述仅提到使用...
美化下拉框涉及以下几个方面: 1. **布局**:通过CSS调整下拉框的大小、位置、边框和背景颜色,使其与页面其他元素保持一致。 2. **字体和颜色**:改变文本的字体、字号、颜色和行高,以提高可读性。 3. **箭头图标...
本资源"select下拉菜单美化.rar"可能包含了一套用于改善默认select菜单外观的JavaScript库或者CSS样式集,旨在提供更加美观、交互性更强的下拉选择体验。 通常,这种美化方法会涉及到以下几个关键知识点: 1. **...
针对这一问题,"下拉框样式美化"插件应运而生,致力于提升网页下拉框的视觉效果,使之更符合现代网页设计的审美标准。 该插件的核心功能在于对下拉框进行多样的样式优化,提供了多种预设的下拉框设计风格。这些风格...