文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>(jQuery)(表单美化一)替换原生的checkbox.radio

(jQuery)(表单美化一)替换原生的checkbox.radio

时间:2010-08-30  来源:前端开发(想念ling)

为了是自己的系统亦或是网站更加适合自己的设计,表单的美化其实是最重要的一块,如果你是个追求完美的人,跟我一起来开始表单美化之路.

效果图:

思路:

  1: 隐藏原先的checkbox,radio;

  2:构造自己的checkbox,radio;

   3:监听自己的checkbox,radio单击事件,并且同时改变原先checkbox,radio的选中状态。

素材:

 

页面结构:

<fieldset>
                <legend>美化radio</legend>
        <input type="button" value="美化radio" id="melradio"/>
    <div class="inputDiv"><input type="radio" name="radio" checked="checked"/>男</div>
        <div class="inputDiv"><input type="radio" name="radio"/>女</div>
        </fieldset>
        <fieldset>
                <legend>美化checkbox</legend>
        <input type="button" value="美化checkbox" id="melcheckbox"/>
        <div class="inputDiv"><input type="checkbox" name="radio" checked="checked"/>男</div>
        <div class="inputDiv"><input type="checkbox" name="radio"/>女</div>
        </fieldset>

CSS样式:

.divRadio{
                                width:16px;
                                
                                background:url(radio.png) -174px 0 no-repeat;
                                float:left;
                        }
                        .divRadioCheck{
                                float:left;
                                width:16px;
                                
                                background:url(radio.png) -158px 0 no-repeat;
                        }
                        .divCheck{
                                float:left;
                                width:16px;
                                
                                background:url(checkbox.png) -16px 0 no-repeat;
                        }
                        .divCheckBox{
                                float:left;
                                width:16px;
                                
                                background:url(checkbox.png) 0 0 no-repeat;
                        }
                        fieldset{
                                border:1px solid #ccc;
                                margin:10px;
                                padding:10px;
                                width:400px;
                        }

 

JavaScript

$(function(){
                                $("#melradio").click(function(){
                                if($('div').hasClass('divRadio')){
                                return;
                                }
                                //寻找radio元素包装
                                $("input:radio").each(function(){
                                                var name=$(this).attr('name');
                                                var dClass="divRadio";
                                            var that=$(this);
                                                if(that.attr('checked')){
                                                 dClass="divRadioCheck";
                                                }
                                                //隐藏原先的radio
                                                $(this).hide();
                                                var d=$("<div/>").addClass(dClass)
                                                                                 .hover(function(){
                                                                                        $(this).addClass('divRadioHover');
                                                                                 },function(){
                                                                                        $(this).removeClass('divRadioHover');
                                                                                 })
                                                                                 .click(function(){
                                                                                 //判断当前div的状态是否选中
                                                                                        if($(this).hasClass('divRadio')){
                                                                                        //radio的互斥特性
                                                                                        //去除所有的模拟radio的选中
                                                                                                $('div.divRadioCheck').removeClass('divRadioCheck').addClass('divRadio');
                                                                                        //去除所有与该radio同名的radio的选中属性
                                                                                                $('input:radio').find(':[name='+name+']').attr('checked',false);
                                                                                                $(this).removeClass('divRadio').addClass('divRadioCheck');
                                                                                                that.attr({
                                                                                                checked:true
                                                                                        });
                                                                                        }else{
                                                                                                $(this).removeClass('divRadioCheck').addClass('divRadio');
                                                                                                that.attr(
                                                                                                'checked',false);
                                                                                        }
                                                                                })
                                                that.parent().append(d);
                                        })
                                });
                                $("#melcheckbox").click(function(){
                                if($('div').hasClass('divCheck')||$('div').hasClass('divCheckBox')){
                                return;
                                }
                                //寻找checkbox元素包装
                                $('input:checkbox').each(function(){
                                                var cClass="divCheck";
                                                var that=$(this);
                                                if(that.attr('checked')){
                                                        cClass="divCheckBox";
                                                }
                                                //隐藏原先的checkbox
                                                that.hide();
                                                var e=$('<div/>').addClass(cClass)
                                                                                .click(function(){
                                                                                if($(this).hasClass('divCheck')){
                                                                                        $(this).removeClass('divCheck').addClass('divCheckBox');
                                                                                        that.attr('checked',true);
                                                                                }else{
                                                                                        $(this).removeClass('divCheckBox').addClass('divCheck');
                                                                                        that.attr('checked',false);
                                                                                }
                                                                                });
                                                that.parent().append(e);
                                        })
                                })
                        })
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载