模仿combox(select)控件,不用为美化select烦恼了。

不用整天为美化select控件烦恼了。

1、可批量美化select控件。
2、可以有onchange句柄。
3、触发onchange的函数可带参数。
3、可以得到select的值。
4、可设置像select类似的滚动条(如大于或等于8个数目时出现滚动条)
5、可设置宽度和高度

API参考:
//首先生成一个simulateSelect的实例
//构造函数的第一个可选参数为触发onchange的函数,其它的为onchange函数的参数;
c = new simulateSelect(s1onchange, "never-online");
//设置select的CSS,第一个参数为控件的主要CSS、第二个为选中条目时的CSS、第三个为没有选中条目时的CSS
c.style("CtlSelect2", "selected2", "unselected2");
//设置select的宽度和高度;
c.width = 320;
c.height = 20;
//初始化参数为:select控件的ID,可以用逗号分离,进行批量转换;
c.init("s1,s2,s3");

下一版本将可修改combox

simulate combox control - http://www.never-online.net

body, input
{
font-family: verdana;
font-size: 9pt;
}
h1
{
font-family: tahoma;
font-size: 22pt;
text-align: left;
}
pre
{
font-size: 9pt;
font-family: verdana;
border: 1px solid #006600;
width: 400px;
padding: 10px;
background: #ffffff;
color: #006600;
}
.CtlSelect
{
border: 1px solid #006600;
font-family: verdana;
height: 20px;
color: #006600;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected
{
background: #006600;
color: #ffffff;
height: 20px;
}
.unselected
{
height: 20px;
color: #006600;
line-height: 120%;
border-bottom: 1px solid #006600;
}
.CtlSelect1
{
border: 1px solid #003399;
font-family: verdana;
height: 20px;
color: #003399;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected1
{
background: #003399;
color: #ffffff;
height: 20px;
}
.unselected1
{
height: 20px;
color: #003399;
line-height: 120%;
border-bottom: 1px solid #003399;
}
.CtlSelect2
{
border: 1px solid #990000;
font-family: verdana;
height: 20px;
color: #990000;
background: #ffffff;
/*background:url({E5066804-650D-4757-9BA4-A92DB8817A18}0.jpg);*/
}
.selected2
{
background: #990000;
color: #ffffff;
height: 20px;
}
.unselected2
{
height: 20px;
color: #990000;
line-height: 120%;
border-bottom: 1px solid #990000;
}
.copyright
{
margin-top: 10px;
font-size: 9pt;
text-align: center;
color: #333;
font-weight: bold;
}

0 )
for(var i=0; i0 )
{
var arrCtlSel = ctlSelIDs.split(",");
for(var i=0; i-1 ||
el.id.indexOf(inputPrefix)>-1 ||
el.id.indexOf(containerPrefix)>-1 ||
el.id.indexOf(buttonPrefix)>-1 )
{
return;
}
else
{
for(var i=0; i0 ? width : object.offsetWidth);
height ? input.style.height=button.style.height=height : "";
input.value = value = object[0].text;
if( readonly==true ) input.readOnly=true;

// this method is only IE.
object.insertAdjacentElement("afterEnd",button);
object.insertAdjacentElement("afterEnd",input);
object.style.display = 'none';
}};
simulateSelect.prototype.expand = function(ctlSelID, offset) { with(this)
{
var div;
var object = $(ctlSelID);

if( !$(containerPrefix + ctlSelID) )
{
div = document.createElement("DIV");
div.style.position = "absolute";
div.style.display = "block";
div.setAttribute("id", containerPrefix + ctlSelID);
div.className = ctlStyle;
div.style.left = offset.left;
div.style.top = offset.top + offset.height;
div.style.width = (width ? width : offset.width) + 20;
if( number )
{
div.style.height = height * number;
div.style.overflow = "auto";
}
document.body.appendChild(div);

for(var i=0; i

simulate combox control

demonstrate

normal select:
- please select your options -
option1
option2
option3
option4
option5

simulate select:
- please select your options -
1option1
1option2
1option3
1option4
1option5

scroll simulate select:
- please select your options -
2option1
2option2
2option3
2option4
2option6
2option7
2option8
2option9
2option10
2option11
2option12
2option13
2option14

onchange handler fire:
- please select your options -
3option1
3option2
3option3
3option4
3option5

Get value
append item
remove item

description

//-------------------------------------------------------------
//  @ Module: simulate select control, IE only.
//  @ Debug in: IE 6.0
//  @ Script by: blueDestiny, never-online
//  @ Updated: 2006-3-22
//  @ Version: 1.0 apha
//  @ Email: blueDestiny [at] 126.com
//  @ Website: http://www.never-online.net
//  @ Please Hold this item please.
//
//  API
//  @ class: simulateSelect()
//
//  @ object.style(ctlStyle[,selStyle][,unselStyle])
//    ctlStyle: main control combox css class name
//    selStyle: when mouseover or option focus css class name
//    unselStyle: options blur's css class name
//
//  @ object.width=(widthPX)
//    widthPX must be a digit number.
//
//  @ object.height=(heightPX)
//    heightPX must be a digit number.
//
//  @ object.getValue(ctlSelID)
//    ctlSelID is the unique select control ID
//
//  -------------- for the next Version ----------
//  @ object.readOnly = (blnReadOnly)
//    blnReadOnly must be a boolean type or a number type.
//  @ object.addEvent(w, h)
//    w: fire handler's event.
//    h: handler function.
//-------------------------------------------------------------

Power By blueDestiny, never-online
http://www.never-online.net

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • 用javascript实现select的美化的方法

    论坛经常有人会问到用CSS如何美化Select标签,其实但凡你看到很酷的都是用javascript来实现的.昨天试着做了一下,基本实现的初级功能.拿出来和大家一起分享一下.先可以看一下预览效果:http://www.iwcn.net/demo/select. [功能需求] 1.调用要方便,做好之后应该像这样: 复制代码 代码如下: function loadSelect(selectobj){  //传入一个select对象就能将他的样式美化  } 2.不改变原有表单项,表单的页面代码不去破坏:

  • css文本框与按钮美化效果代码

    一.先看看在网页中经常出现的按钮与文本框的本来面目吧! 对照上图,我们怎么样才能改变文本框与按钮的模样呢?那在下面我为大家提供两种文本框与按钮样式作为例子参考,第一种是文本框与按钮无立体感,只是有线 条颜色与填充颜色的,这种效果大家可能在很多网站上都看见过,给人一种特别的感觉,很不错的,第二种效果就比较特殊了,是将文本框做成一种类似于下划线的 效果并且是彩色的,同时按钮的背景色也不再是灰色,而是彩色的,可以说这是一种非常酷的效果,好了,下面我就来说说这两种效果实现的详细操作步骤吧. 二.无立体效

  • 在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题

    发现的问题可能会陆续添加 1. Mozilla和Opera都不支持该字体,改掉DTD也是没有效果.测试在Mozilla Firefox1.5, Opera9.0下都是显示成Arial字体.而特殊符号是支持的. 如: <body id="www.never-online.net"> <div style="font-family:Webdings">6</div> <div>▼</div> </body

  • CSS 美化段落文本之首字下沉

    Selector:first-letter {font-size:2.5em; font-family:"楷体_GB2312"; font-weight:bold; line-height:1.2em; float:left; padding:5px 2px 0 0; color:#c00;} 如果你觉得还不是很清楚,那么这里就细细讲述一下: 首先要在HTML中有一段自己的文本,是在<p></p>中的也好,在其它块标签中都可以.给他个ID也好,class也好,直

  • jqTransform form表单美化插件使用方法

    jQtransForm下载地址 http://www.jb51.net/jiaoben/25166.html 用法 1- 添加脚本包含在标题部分的网页 复制代码 代码如下: //required <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.j

  • css美化input file按钮的代码方法

    input file在系统默认下的外观: 我们最多通过定义input的border来改变系统默认的外观:如果要让浏览按钮更漂亮一点,我们想定义它的背景颜色,甚至想用背景图片来代替,通过css定义input flie还真是办不到的.偶然看到一篇文章:input file 文件选择框美化 作者是把系统默认的按钮设置透明度为0,再定义一个label标签样式,来覆盖透明掉的按钮.按照作者的方法,我也试验了一下,代码如下: input file的另类做法 上传文件: 浏览... [Ctrl+A 全选 注:

  • javascript 单选框,多选框美化代码

    crir = {     init: function() {         arrLabels = document.getElementsByTagName('label'); searchLabels:         for (var i=0; i<arrLabels.length; i++) {                         // get the input element based on the for attribute of the label tag   

  • select标签模拟/美化方法采用JS外挂式插件

    <select>标签的外观问题很恼人,各个浏览器都不一致,单单就IE,一个版本就一个长相,还不能用CSS修饰. 在这将本人对<select>的美化方法共享出来.优点: 仍保留使用<select>,仅改变外观,不改变不干预Form行为,后期加载JS.(注:本脚本依赖jQuery) 啥也不说了,都在代码里. 复制代码 代码如下: $(document).ready(function () { // 找出需要美化的<select>标记,我们用一个class名称 &

  • select下拉选择框美化实现代码(js+css+图片)

    因为虽然实现起来麻烦点,如果用自带的Select,很简单的就完成了,但是本代码实际上是在向大家讲述一种Js在网页中的应用实战,多种元素之间的配合作用等.效果如下图: 下拉select选择框 body{margin:20px auto;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:950px;height:400px;border:solid 1px #aaa;position:relative;padding:10px;}

  • CSS 美化表格边框为凹陷立体效果的实现方法

    当然,这里仅提供一种思路,你可以灵活修改使用. Untitled Document 我们 AJAX专栏 FW专栏 FLASH专栏 此边框为默认风格 我们 AJAX专栏 FW专栏 FLASH专栏 此边框为凹陷效果 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

随机推荐