radio和checkbox例子

radioDemo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单美化_单选按钮</title>
    <style>
        div,dl,dt,dd,a{padding:0;margin:0;}
        body{font: 12px/22px "微软雅黑";}
        a{color:black;text-decoration:none;}
        .type{width:400px;height:32px;border:1px solid #DFDFDF;margin:30px auto;}
        .type dl{height: 32px;line-height:32px;padding-left:15px; }
        .type dt{float:left;}
        .type dd{float:left;margin:0 10px 0 8px; }
        .type dd a{display:block;position:relative;padding-left:23px;}
        .type dd a:hover {color:#cc0000; text-decoration:underline;}
        .type dd b{display:block;width:20px;height:20px;background:url(radiobutton.gif) no-repeat -14px -18px;position:absolute;top:6px;left:0;}
        .type dd a:hover b{background-position:-14px -118px;}
        .type .selected b,.type .selected a:hover b{background-position:-14px -218px;}
    </style>
    <script>
        function show(index){
            var dd = document.getElementById("type").getElementsByTagName("dd");
            for(var i = 0; i < dd.length; i++){
                if(i === index){
                    dd[i].className = 'selected';
                }else {
                    dd[i].className = null;
                }
            }
        }
    </script>
</head>
<body>
    <div>
        <form action="#" method="post" name="typeForm">
            <label>配送类型:</label>
            <input type="radio" name="type" checked="checked"/><label>全部</label>
            <input type="radio" name="type"/><label>京东配送</label>
            <input type="radio" name="type"/><label>第三方配送</label>
        </form>
        下面用dl来替换 全部,京东配送,第三方配送都是对配送类型的说明<br/>
        浮动的时候,高度没了,所以有时候还是要加一下高度的<br/>
        b可以作为占位的标签<br/>
        图片偏移:先水平后垂直<br/><br/>
        点击的时候,选中的改变className,未选中的还原吧<br/>
    </div>
    <div class="type">
        <dl id="type">
            <dt>配送类型</dt>
            <dd class="selected" οnclick="show(0)"><a href="#"><b></b>全部</a></dd>
            <dd><a href="#" οnclick="show(1)"><b></b>京东配送</a></dd>
            <dd><a href="#" οnclick="show(2)"><b></b>第三方配送</a></dd>
        </dl>
    </div>
</body>
</html>

checkboxDemo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>复选框例子</title>
    <style>
        div,form,ul,li,input,label,b{padding:0;margin:0}
        li{list-style: none;}
        body{font:13px/26px "微软雅黑";}
        .typeList{width:340px;height:30px;border:1px solid #DFDFDF;border-width:1px 0;margin:50px auto;}
        .typeList ul{height:30px;line-height:30px;padding-left:15px;overflow:hidden;}
        .typeList ul li{float:left; margin-right:12px;position:relative;}
        .typeList ul li input{display:none;}
        .typeList ul li label {padding-left:23px;}
        .typeList ul li:hover b{background-position:-12px -118px;}
        .typeList ul .selected b,.typeList ul .selected:hover b{background-position:-12px -218px;}
        .typeList ul li b{width:20px;height:20px;background:url(checkbox.gif) no-repeat -12px -18px;display:block;position:absolute;top:6px;left:0px;}
    </style>
    <script>
        function addLoadEvent(func){
            var oldonload = window.onload;//得到上一个onload事件的函数
            if(typeof window.onload !== 'function'){//判断类型是否是function
                window.onload = func;
            }else {
                window.onload = function(){
                    oldonload();//调用之前覆盖的onload事件的函数
                    func();//调用当前函数
                }
            }
        }
        function createBElement(){
            var ul = document.getElementById("checkList");
            var liList = ul.getElementsByTagName("li");
            var label;
            for(var i = 0 ; i < liList.length; i++){
                label = liList[i].getElementsByTagName("label");
                var b = document.createElement("b");
                liList[i].insertBefore(b,label[0]);
            }
        }
        function initSelected(){
            var liList = document.getElementById("checkList").getElementsByTagName("li");
            var evTimeStamp = 0;
            for(var i = 0; i < liList.length;i++){
                liList[i].onclick = function(){
                    var now = new Date();
                    if(now - evTimeStamp < 100){
                        return;
                    }
                    evTimeStamp = now;
                    if(this.className === "selected"){
                        this.className = null;
                    }else{
                        this.className = "selected";
                    }
                };
            }
        }
        addLoadEvent(createBElement);
        addLoadEvent(initSelected);
    </script>
</head>
<body>
    <div class="typeList">
        <form action="#" method="post" name="typeList">
            <ul id="checkList">
                <li class="selected"><input type="checkbox" name="typeList" id="xigua"/><label for="xigua">西瓜</label></li>
                <li><input type="checkbox" name="typeList" id="huanggua"/><label for="huanggua">黄瓜</label></li>
                <li><input type="checkbox" name="typeList" id="nangua"/><label for="nangua">南瓜</label></li>
                <li><input type="checkbox" name="typeList" id="putao"/><label for="putao">葡萄</label></li>
                <li><input type="checkbox" name="typeList" id="chengzi"/><label for="chengzi">橙子</label></li>
                <li><input type="checkbox" name="typeList" id="yingtao"/><label for="yingtao">樱桃</label></li>
                <li><input type="checkbox" name="typeList" id="juzi"/><label for="juzi">橘子</label></li>
                <li><input type="checkbox" name="typeList" id="ganzhe"/><label for="ganzhe">甘蔗</label></li>
                <li><input type="checkbox" name="typeList" id="xiangjiao"/><label for="xiangjiao">香蕉</label></li>
            </ul>
        </form>
    </div>
    <div>
        checkbox 的 id 要和for设置一样 这样点击的时候,checkbox就可以用了。<br/>
        window.onload = createBElement;记住createBElement不能加括号,加括号就是调用了,还未加载就调用了,会有空指针异常的<br/>
        input label有一个bug会有两次的onclick事件发生,此时简单的方法就是判断两个事件的时间差,小于100ms就return<br/>
    </div>
</body>
</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值