微博客

模仿淘宝商品选择颜色和尺寸的效果,即选择商品颜色和尺寸的时候,把选择的颜色和尺寸放到一个页面容器里面,不足之处,还望指教。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
<style type="text/css">
.ibWrapper{font-size:0;letter-spacing:-1px;}
.ib{font: 12px/18px arial;display:inline-block;}
.selectedcolor span{display:block;width:10px;height:10px;}
</style>
    <script type="text/javascript" src="jquery_v1.7.2.js"></script>
<script type="text/javascript">
$(document).ready(function (){//注意修改jquery的路径
    var sRGBToHex  = function (str){
        if (str.search(/rgb/i) === -1){//兼容ie6-8,它们的颜色值本身就是16进制的
            return str;
        }
        var result = "#";
        str = str.replace(/rgba?\((.*)\)/gi,"$1");
        aStr = str.split(",");
        for (var i=0; i<3; i++){//这里直接写了3,是因为标准浏览器的色彩值可能包含透明度信息,例如RGBA(0,255,30,0.5)
            var iColorAlpha = +aStr[i]; 
            if (iColorAlpha < 16){
                result += "0" + iColorAlpha.toString(16);
            }else{
            result += iColorAlpha.toString(16);
            }        
        }
        return result;
    }

    
    $("#colorList input").click(function (){
        var _this = $(this);
        if ($(this).is(":checked")){
            var oSelectedElement = $("<div class='selectedcolor ib' ></div>");
            oSelectedElement.text($(this).parent().text());
            $("<span>").appendTo(oSelectedElement).end().css("backgroundColor",function (){
                return _this.attr("value");                
            });            
            oSelectedElement.appendTo($("#selectedColorList"));            
        }else{
            $(".selectedcolor span").each(function (i){
                
                if (sRGBToHex($(this).css("backgroundColor")) === _this.attr("value")){
                    $(this).parent().remove();
                }
            })
        }
        
    })


})
</script>
</head>
<body>
    <div id="colorList">
        <form action="#" method="post">
            <label ><input type="checkbox" name="temp_color" id="color1" value="#ff0000"/>红色</label>
            <label ><input type="checkbox" name="temp_color" id="color2" value="#ffff00"/>黄色</label>
            <label ><input type="checkbox" name="temp_color" id="color3" value="#00ff00"/>绿色</label>
            <label ><input type="checkbox" name="temp_color" id="color4" value="#0000ff"/>蓝色</label>
        </form>
    </div>
    <div id="selectedColorList" class="ibWrapper">        
        
    </div>
</body>
</html>

 

posted on 2013-06-26 12:23  飞鸟42  阅读(688)  评论(0编辑  收藏  举报