jQuery实现购物车效果

简单的购物车效果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>购物车</title>
       <link rel="stylesheet" type="text/css" href="css/index.css"/>
    </head>
    <body>
        <div class="container">
            <h2 style="text-align: center;">购物车</h2>
            <!-- 内容部分 -->
            <div class="main">
                <ul>
                    <li>
                        <!-- 选择部分 -->
                        <label>
                            <input type="checkbox" name="" id="">
                        </label>
                        <!-- 产品 -->
                        <div class="cp">
                            <img src="img/timg.jpg">
                        </div>
                        <!-- 价格 -->
                        <div class="cp-price">
                            <span>32</span>
                            <span class="nummoneys" hidden="hidden">32</span>
                        </div>
                        <!-- 数量加减 -->
                        <div class="num">
                            <div class="sub">-</div>
                            <input type="number" name="" id="" value="1">
                            <div class="add">+</div>
                        </div>
                    </li>
                    <li>
                        <!-- 选择部分 -->
                        <label>
                            <input type="checkbox" name="" id="">
                        </label>
                        <!-- 产品 -->
                        <div class="cp">
                            <img src="img/timg.jpg">
                        </div>
                        <!-- 价格 -->
                        <div class="cp-price">
                            <span>45</span>
                            <span class="nummoneys" hidden="hidden">45</span>
                        </div>
                        <!-- 数量加减 -->
                        <div class="num">
                            <div class="sub">-</div>
                            <input type="number" name="" id="" value="1">
                            <div class="add">+</div>
                        </div>
                    </li>
                </ul>
            </div>
            <!-- 结算部分 -->
            <div class="footer">
                <!-- 全选 -->
                <div class="select-all">
                    <label>
                        <input type="checkbox" />
                        <span>全选</span>
                    </label>
                </div>
                <div class="left">
                    <div>
                        <font>总件数:</font>
                        <span class="nums">0</span>
                        <font></font>
                    </div>
                    <div>
                       <font>总价:</font> 
                        <span class="moneys">¥0</span>
                    </div>
                </div>
            </div>
        </div>
    </body>
    <script src="js/jquery-2.1.0.js"></script>
    <script src="js/index.js"></script>
</html>
/* css样式 */
*
{ margin: 0; padding: 0; list-style: none; } .container { width: 400px; height: 500px; border: 1px solid red; margin: 0 auto; } .container ul li { border-bottom: 1px solid #666; display: flex; align-items: center; } .container ul li .cp { width: 80px; height: 80px; } .container ul li .cp img { width: 100%; height: 100%; } input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0; } /* 数量部分 */ .num { padding-left: 20px; } .num div { width: 20px; height: 20px; border: 1px solid #ccc; line-height: 20px; text-align: center; cursor: pointer; user-select: none; } .num input { width: 22px; box-sizing: border-box; text-align: center; } /* 结算部分 */ .left span { display: inline-block; width: 10%; text-align: center; }
// jQuery
$(function(){
   // 全选按钮
   $(".select-all input").change(function(){
       // 将所有的单选按钮选中
       $("li label input").prop("checked",$(this).prop("checked"));
       numPrice()
   });
   
   // 单选按钮
     $("li label input").change(function(){
        // 获取单选框的个数
        var numInput=$("li label input").length;
        //获取被点击后复选框的个数 
        var selInput=$("li label input:checked").length;
        // 判断点击个数是否等于总个数
        if(numInput==selInput){
            $(".select-all input").prop("checked",true);
        }else{
            $(".select-all input").prop("checked",false);
        }
        numPrice()
     });
     
     // 价格及数量的计算
     function numPrice(){
         // 定义变量存放单个商品数量
         var numBox=$(".num input");
         // 定义变量存放价格和商品总数量
         var money=0;
         var num=0;
         for (var i = 0; i < numBox.length; i++) {
             if(numBox.eq(i).parents("li").find("label input").get(0).checked){
                 // 商品件数
                 num+=parseInt(numBox.eq(i).val());
                 // 商品价格
                 money+=parseFloat(numBox.eq(i).parents("li").find(".cp-price .nummoneys").text());
             }
         }   
         // 更换结算部分
         $(".nums").text(num);
         $(".moneys").text(money);
     }
     
     // 加商品个数
    $(".add").click(function(){
        //获取商品个数
        var addnum=parseInt($(this).parents("li").find(".num input").val());
        $(this).prev().val(addnum+=1);
        //计算该商品的总价格
        var nummoneys=parseFloat($(this).parents("li").find(".cp-price span:first-child").text());
        // 替换原价格
        $(this).parents("li").find(".cp-price .nummoneys").text(addnum*nummoneys);
        numPrice()
    });
    // 减个数
    $(".sub").click(function(){
        //获取商品个数
        var addnum=parseInt($(this).parents("li").find(".num input").val());
        if(addnum<=1){
            addnum=1;
            return false;
        }
        $(this).next().val(addnum-=1);
        //计算该商品的总价格
        var nummoneys=parseFloat($(this).parents("li").find(".cp-price span:first-child").text());
        // 替换原价格
        $(this).parents("li").find(".cp-price .nummoneys").text(addnum*nummoneys);
        numPrice()
    });
    // 手动改变数量
    $("li .num input").blur(function(){
        //获取商品个数
        var addnum=parseInt($(this).parents("li").find(".num input").val());
        if(addnum<=1){
            addnum=1;
             $(this).val(addnum)
        }
        $(this).next().val(addnum-=1);
        //计算该商品的总价格
        var nummoneys=parseFloat($(this).parents("li").find(".cp-price span:first-child").text());
        // 替换原价格
        $(this).parents("li").find(".cp-price .nummoneys").text(addnum*nummoneys);
        numPrice()
    });
     
});

 

posted @ 2019-10-23 14:46  Mr▪小zhou  阅读(456)  评论(0编辑  收藏  举报