zoukankan      html  css  js  c++  java
  • 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()
        });
         
    });
  • 相关阅读:
    nginx不支持pathinfo模式解决方法
    php只保留两位小数
    分享图文到QQ空间
    android 使用信鸽推送通知栏不显示推送的通知?
    Editetext获取焦点后让输入软键盘中出现搜索按键
    Android EditText的使用过程中遇到的问题
    在线根据现有apk生成指定id的推广apk (已过时)
    @Validated和@Valid区别
    idea快捷键使用总结
    大概
  • 原文地址:https://www.cnblogs.com/xiaozhou223/p/11726239.html
Copyright © 2011-2022 走看看