首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>编程相关>JAVASCRIPT>用javascript实现select的美化
用javascript实现select的美化
来源: 发布时间:2007-09-21 发布人: 浏览: 人次   字体: [ ]  

  第三步:虚拟一个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 + "px";
        iDiv.style.left=offset.left + "px";
        iDiv.style.background="url(icon_select.gif) no-repeat right 4px";
        iDiv.style.border="1px solid #3366ff";
        iDiv.style.fontSize="12px";
        iDiv.style.lineHeight=offset.height + "px";
        iDiv.style.textIndent="4px";
    document.body.appendChild(iDiv);

  第四步:把原始select没人选中的值给它。

以下是引用片段:
  iDiv.innerHTML=obj.options[obj.selectedIndex].innerHTML;

  第五步:为替身添加鼠标移过样式。

以下是引用片段:
    iDiv.onmouseover=function(){//鼠标移到
        iDiv.style.background="url(icon_select_focus.gif) no-repeat right 4px";
    }
    iDiv.onmouseout=function(){//鼠标移走
        iDiv.style.background="url(icon_select.gif) no-repeat right 4px";
    }

  第六步:添加关键的鼠标点击事件。

 

以下是引用片段:
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) + "px";
        cDiv.style.left=offset.left + "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;
                }
            }
        }
    }

  最后这个比较复杂一点,再解释一下,在做这一步之前,select的样子已经出来了,下一步就是再加一个div去模仿select被点击之后出现的下拉选项了。select标签的options通过javascript提取出来,把它写成这样:

以下是引用片段:
<div>
    <ul>
        <li>optionName</li>
        <li>optionName</li>
        <li>optionName</li>
    </ul>
</div>

共2页: 上一页 [1] 2 下一页
相 关 文 章   发布商链接
·用Javascript轻松制作抽奖系统
·如果用JS得到字符串中出现次数最多的...
·javascript应用之实现select的美化
·javascript实现ListBox内容的交互实...
·javascript使用xml数据岛的简单实例
·Javascript中判断润年简单的代码实...
·javascript实现多表头分类交叉报表代...
·javacript常用的验证方法小结
·Javascript在IE和FireFox中的不同...
·Javascript如何控制CheckBox的全选与...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·JS验证密码的强度级别代码实...
·javscript实现鼠标移到小图片
·如何在静态页面中利用javascr...
·javascript实现WEB页面导出为...
·如何在兼容IE和Firefox的情况
·javascript读取本地excel文档
·javascript实现页面自动刷新...
·javascript解决iframe框架页...
·javascript实现网易邮箱多附...
·javascript实现模仿IE自动完...
·javacript实现关闭子窗口,刷...
·javascript脚本实现右键弹出...
·javascript结合Ajax制作的可...
·javascript实现页面载入等待...
·javascript实现一个IP只弹窗...
热 门 文 章
·Ext2.0框架的Grid使用介绍祥...
·JS实现多行的HTML静态表格分...
·javascript实现多张图片轮流...
·Adobe Reader利用javascript...
·实例讲解Ext Js生成动态树,...
·javascript使用xml数据岛的简...
·javascript实现页面跳转的五...
·javascript读写TEXT文本文件...
·幻灯片焦点图片新闻显示调用f...
·javascript实现页面载入等待...
·javascript实现页面自动刷新...
·Javascript在IE和FireFox中的...
·javascript实现动态多附件上...
·鼠标右下角显示层,javascrip...
·javascript脚本实现右键弹出...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .