jquery实现select的美化

[示例代码]

<html>
  <head>
    <script src="jquery-1.2.js"></script>
    <script>
      $(document).ready(
        function () {
          $("#select").click (
            function () {
              var original =this;
              $(original).blur();
              $(original).css("visibility", "hidden");
              var value = $(this).attr("value");
              var topOffset = 0;
              var alternate = document.createElement("div");
              $(document.body).append(alternate);
              {
                var alternate_select = document.createElement("div");
                $(alternate).append(alternate_select);
                $(alternate_select).css("position", "absolute");
                $(alternate_select).css("width", original.offsetWidth + "px");
                $(alternate_select).css("height", original.offsetHeight + "px");
                $(alternate_select).css("top", "0px");
                $(alternate_select).css("left", "0px");
                $(alternate_select).css("cursor", "pointer");
                $(alternate_select).text(
                  $($(original).children("option").filter(
                      function (index) {
                        return $(original).attr("value") === value;
                      }
                    )[0]
                  ).text()
                );
                $(alternate_select).click(
                  function () {
                    $(original).css("visibility", "inherit");
                    document.body.removeChild(alternate);
                  }
                );
                $(alternate_select).hover(
                  function (event) {
                    $(this).css("background-color", "blue");
                    $(this).css("color", "white");
                  },
                  function (event) {
                    $(this).css("background-color", "inherit");
                    $(this).css("color", "inherit");
                  }
                );
              }
              topOffset += alternate_select.offsetHeight;
              {
                $(original).children("option").each(
                  function (index, element) {
                    var alternate_option = document.createElement("div");
                    $(alternate).append(alternate_option);
                    $(alternate_option).css("position", "absolute");
                    $(alternate_option).css("width", element.offsetWidth + "px");
                    $(alternate_option).css("height", element.offsetHeight + "px");
                    $(alternate_option).css("top", topOffset + "px");
                    $(alternate_option).css("left", "0px");
                    $(alternate_option).css("cursor", "pointer");
                    $(alternate_option).text($(element).text());
                    var option_value = $(element).attr("value");
                    if (value === option_value) {
                      $(alternate_option).css("font-weight", "bold");
                    }
                    $(alternate_option).click(
                      function () {
                        $(original).attr("value", option_value);
                        $(original).css("visibility", "inherit");
                        document.body.removeChild(alternate);
                      }
                    );
                    $(alternate_option).hover(
                      function () {
                        $(this).css("background-color", "blue");
                        $(this).css("color", "white");
                      },
                      function () {
                        $(this).css("background-color", "inherit");
                        $(this).css("color", "inherit");
                      }
                    );
                    topOffset += alternate_option.offsetHeight;
                  }
                );
              }
              $(alternate).css("position", "absolute");
              $(alternate).css("top", original.offsetTop + "px");
              $(alternate).css("left", original.offsetLeft + "px");
              $(alternate).css("width", alternate_select.offsetWidth + "px");
              $(alternate).css("height", topOffset + "px");
              $(alternate).css("background-image", "url(gif/logo.gif)");
            }
          );
        }
      );
    </script>
  </head>
  <body>
    <select id="select">
      <option value="1">option 1</option>
      <option value="2">option 2</option>
      <option value="3">option 3</option>
      <option value="4">option 4</option>
    </select>
  </body>
</html>

时间: 2024-11-02 20:04:15

jquery实现select的美化的相关文章

jquery实现select下拉框美化特效代码分享_javascript技巧

这是一款基于jquery实现select下拉框美化特效代码,用户可以选择下拉菜单内容,是一款非常实用的特效源码.  为大家分享的jquery实现select下拉框美化特效代码如下 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/g.css" type="text/css&

select标记美化--JS式插件、后期加载_表单特效

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

用javascript实现select的美化

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

jQuery对select操作小结(遍历option,操作option)

本篇文章是关于jQuery对select的操作进行了总结介绍,需要的朋友可以参考下   //遍历option和添加.移除optionfunction changeShipMethod(shipping){  var len = $("select[@name=ISHIPTYPE] option").length  if(shipping.value != "CA"){   $("select[@name=ISHIPTYPE] option").e

jQuery对Select的操作大集合

 本篇文章主要介绍了jQuery对Select的操作进行了详细的汇总,需要的朋友可以过来参考下,希望对大家有所帮助 1.jQuery添加/删除Select的Option项: 2.$("#select_id").append("<option value='Value'>Text</option>");   //为Select追加一个Option(下拉项)   3.$("#select_id").prepend("

JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值

 本篇文章主要是对JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jQuery获取Select选择的Text和Value:  语法解释:  1. $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发  2. var checkText=$("#select_id"

用jQuery模拟select下拉框的简单示例代码

 本篇文章主要是对用jQuery模拟select下拉框的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮.这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

jquery操作select详解

 本篇文章主要是对jquery操作select(取值,设置选中)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了.   比如<select class="selector"></select>   1.设置value为pxx的项选中    $(".selector").val("pxx");   2.设置text为pxx的项选中

JQUERY 设置SELECT选中项代码

 本篇文章主要是对JQUERY 设置SELECT选中项的代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 JQUERY可通过value值,设定指定value的option为选中项  代码如下: $("#SelectId").attr("value", "theValueYouWantToSetIndex")   另:jQuery.trim( str )方法,可以去掉字符串前后的空格