zoukankan      html  css  js  c++  java
  • 淘宝购物车效果

    淘宝购物车效果

      今天给大家带来的是淘宝购物车效果,写的不怎么好,请大家多多指教。

      效果:

        1.点击全选前的选择框,选择所有的选择框。

        2.点击商品的加号或者减号可以改变商品的数量值,并且改变商品的小计和他的积分,同时在最下方的总积分和总金额会改变

        3.在商品的数量值可以直接更改他的值,并且商品的小计和他的积分可以改变,同时在最下方的总积分和总金额会改变

        4.点击商品最后的删除按钮可以删除本商品的值,并且更改最下方的总积分和总金额

        5.点击最下方的删除所选按钮可以使你选择的商品进行删除。若是全选则都删除,并且全选按钮的对勾取消

      HTML代码:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>淘宝购物车效果</title>
      6     <link rel="stylesheet" type="text/css" href="css/index.css">
      7 </head>
      8 <body>
      9     <div class="box c">
     10         <div class="logo"></div>
     11         <ul>
     12             <li>您的位置:</li>
     13             <li><a href="#">首页 </a><span>> </span> </li>
     14             <li><a href="#">我的淘宝 </a><span>></span> </li>
     15             <li>我的购物车</li>
     16         </ul>
     17         <div class="shopcat">
     18             <div class="shopcat1">1.查看购物车</div>
     19             <div class="shopcat2"></div>
     20             <div class="shopcat1">2.确认订单信息</div>
     21             <div class="shopcat2"></div>
     22             <div class="shopcat1">3.付款到支付宝</div>
     23             <div class="shopcat2"></div>
     24             <div class="shopcat1">4.确认收货</div>
     25             <div class="shopcat2"></div>
     26             <div class="shopcat1">5.评价</div>
     27         </div>
     28         <table>
     29             <tr>
     30                 <td>
     31                     <input type="checkbox" id="ck">全选
     32                 </td>
     33                 <td>店铺宝贝</td>
     34                 <td>获积分</td>
     35                 <td>单价(元)</td>
     36                 <td>数量</td>
     37                 <td>小计(元)</td>
     38                 <td>操作</td>
     39             </tr>
     40             <tr class="hrs">
     41                 <td colspan="7">
     42                     <div class="cutoff"></div>
     43                 </td>
     44             </tr>
     45             <tr class="shop">
     46                 <td colspan="7">
     47                     店铺 : <span><a href="#">纤巧百媚时尚鞋坊 </a></span> 卖家: <span> <a href="#">纤巧百媚</a></span>
     48                     <span class="vendor"></span>
     49                 </td>
     50             </tr>
     51             <tr>
     52                 <td><input type="checkbox" name="ck"></td>
     53                 <td class="goods">
     54                     <img src="img/taobao_cart_01.jpg" width="100" height="100">
     55                     <div class="img_r">
     56                         <p class="p1"><a href="#">日韩流行风时尚美眉最爱独特米字拼图金属坡跟公主靴子黑色</a></p>
     57                         <p class="p1">颜色:棕色 尺码:37 </p>
     58                         <p class="p1">
     59                             保障 :
     60                             <span class="bz"></span>
     61                         </p>
     62                     </div>
     63                 </td>
     64                 <td class="jf" name='5'>5</td>
     65                 <td>138.00</td>
     66                 <td>
     67                     <span class="minus" onclick="add(this)"></span>
     68                     <input type="number" value="1" class="nub" name="nub" id="v1">
     69                     <span class="add" onclick="add(this)"></span>
     70                 </td>
     71                 <td id="s1" class="xj">138</td>
     72                 <td><a href="#" class="del">删除</a></td>
     73             </tr>
     74             <tr class="shop">
     75                 <td colspan="7">
     76                     店铺 : <span><a href="#">香港我的美丽日记 </a></span> 卖家: <span> <a href="#">lokemick2009</a></span>
     77                     <span class="vendor"></span>
     78                 </td>
     79             </tr>
     80             <tr>
     81                 <td><input type="checkbox" name="ck"></td>
     82                 <td class="goods">
     83                     <img src="img/taobao_cart_02.jpg" alt="" width="100" height="100">
     84                     <div class="img_r">
     85                         <p><a href="#">chanl/香奈儿/香奈儿炫亮魅力唇膏3.5g</a></p>
     86                         <p>
     87                             保障 :
     88                             <span class="bz"></span>
     89                             <span class="rose"></span>
     90                         </p>
     91                     </div>
     92                 </td>
     93                 <td class="jf" name='12'>12</td>
     94                 <td>265.00</td>
     95                 <td>
     96                     <span class="minus" onclick="add(this)"></span>
     97                     <input type="number" value="1" class="nub" name="nub" id="v2">
     98                     <span class="add" onclick="add(this)"></span>
     99                 </td>
    100                 <td id="s2" class="xj">265</td>
    101                 <td><a href="#" class="del">删除</a></td>
    102             </tr>
    103             <tr class="shop">
    104                 <td colspan="7">
    105                     店铺 : <span><a href="#">实体店经营 </a></span> 卖家: <span> <a href="#">林颜店铺</a></span>
    106                     <span class="vendor"></span>
    107                 </td>
    108             </tr>
    109             <tr>
    110                 <td><input type="checkbox" name="ck"></td>
    111                 <td class="goods">
    112                     <img src="img/taobao_cart_03.jpg" alt="" width="100" height="100">
    113                     <div class="img_r">
    114                         <p><a href="#">蝶装海?蓝清滢粉底夜10#( 象白牙 )</a></p>
    115                         <p>
    116                             保障 :
    117                             <span class="bz"></span>
    118                             <span class="rose"></span>
    119                         </p>
    120                     </div>
    121                 </td>
    122                 <td class="jf" name='3'>3</td>
    123                 <td>85.00</td>
    124                 <td>
    125                     <span class="minus" onclick="add(this)"></span>
    126                     <input type="number" value="1" class="nub" name="nub" id="v3">
    127                     <span class="add" onclick="add(this)"></span>
    128                 </td>
    129                 <td id="s3" class="xj">85</td>
    130                 <td><a href="#" class="del">删除</a></td>
    131             </tr>
    132             <tr class="shop">
    133                 <td colspan="7">
    134                     店铺 : <span><a href="#">红豆豆的小屋 </a></span> 卖家: <span> <a href="#">taobao豆豆</a></span>
    135                     <span class="vendor"></span>
    136                 </td>
    137             </tr>
    138             <tr>
    139                 <td><input type="checkbox" name="ck"></td>
    140                 <td class="goods">
    141                     <img src="img/taobao_cart_04.jpg" alt="" width="100" height="100">
    142                     <div class="img_r">
    143                         <p><a href="#">相宜促销专供 大S推荐 最好用的LilyBell化妆棉</a></p>
    144                         <p>
    145                             保障 :
    146                             <span class="bz"></span>
    147                         </p>
    148                     </div>
    149                 </td>
    150                 <td class="jf" name="12">12</td>
    151                 <td>12.00</td>
    152                 <td>
    153                     <span class="minus" onclick="add(this)"></span>
    154                     <input type="number" value="1" name="nub" class="nub" id="v4">
    155                     <span class="add" onclick="add(this)"></span>
    156                 </td>
    157                 <td id="s4" class="xj" value='12'>12</td>
    158                 <td><a href="#" class="del">删除</a></td>
    159             </tr>
    160             <tr class="last">
    161                 <td colspan="4">
    162                     <img src="img/taobao_del.jpg" id="alldel" >
    163                 </td>
    164                 <td colspan="3" rowspan="" headers="">
    165                     <p>商品总价(不含运费):<span id="zj">0</span></p>
    166                     <p>可获积分<span id="jf2">0</span></p>
    167                     <p class="imgP">
    168                         <img src="img/taobao_subtn.jpg" alt="">
    169                     </p>
    170                 </td>
    171             </tr>
    172         </table>
    173     </div>
    174     <script src="js/index.js"></script>
    175     <script>
    176         setInterval('com()',500);//定时器,每0.5s 执行下这个函数
    177     </script>
    178 </body>
    179 </html>

      css样式:

     1 *{margin: 0;padding: 0}
     2 html,body{ 100%}
     3 a{text-decoration: none;}
     4 /* input的类型为number时去掉小箭头 */
     5 input::-webkit-outer-spin-button,
     6 input::-webkit-inner-spin-button {
     7     -webkit-appearance: none;
     8 }
     9 input[type="number"]{
    10     -moz-appearance: textfield;
    11 }
    12 /* ----------------------end---------------------- */
    13 .c{margin: 0 auto;}
    14 .box{ 1004px;height: 100px;margin-top: 30px;}
    15 .box .logo{ 173px;height: 46px;background: url('../img/logo.gif') no-repeat;background-size: 100% 100%;}
    16 /* 页面导航 */
    17 .box ul {margin-top: 24px;height: 18px; 100%;}
    18 .box ul li{list-style: none;font-size: 16px;float: left;margin-right: 4px;}
    19 .box ul li a {color: #678cd9;}
    20 /* ----------------------end---------------------- */
    21 /* 支付流程 */
    22 .box .shopcat { 986px;height: 23px;border-radius: 6px;background:#e5e5e5;margin-top: 16px;}
    23 .box .shopcat div{float: left}
    24 .box .shopcat .shopcat1 {162px;height: 23px;line-height: 23px;text-indent: 2em;font-size: 16px;}
    25 .box .shopcat .shopcat2 { 44px;height: 23px;background: url('../img/taobao_bg.png') no-repeat}
    26 .box .shopcat .shopcat1:nth-child(1){204px;border-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0;background: #ff6600;color:white;}
    27 .box .shopcat .shopcat2:nth-child(2){margin-left: -14px; 16px;}
    28 /* ----------------------end---------------------- */
    29 table{margin-bottom: 20px;}
    30 table tr{height: 63px;background: #e2f2ff;text-align: center;}
    31 table a {color: #678cd9; }
    32 table tr:nth-child(1){height: 44px;background: none;}
    33 table .hrs{height:4px;background: none;}
    34 .box .cutoff{ 1000px;height: 4px;background: #b8c9e5;}
    35 table .shop{ height: 40px;text-align: left;text-indent: 2em;background:none;position: relative}
    36 table .shop span{margin-right:6px;}
    37 table .shop .vendor{ 84px;height:26px;display: inline-block;background: url('../img/taobao_relation.jpg') no-repeat;position: absolute;}
    38 table .add{ 14px;height: 14px;background: url('../img/taobao_adding.jpg') no-repeat;display: inline-block;background-size: 100% 100%;}
    39 table .nub { 30px;height: 14px;text-align: center}
    40 table .minus{ 14px;height: 14px;background: url('../img/taobao_minus.jpg') no-repeat;display: inline-block;background-size: 100% 100%;}
    41 table .goods { 360px;padding: 8px;}
    42 table .goods img{float: left;}
    43 table .goods .img_r{float: left;text-align: left; 246px;margin-left: 10px;font-size: 12px;}
    44 table .goods .img_r p{font-size: 12px;line-height: 24px;margin-top: 16px;}
    45 table .goods .img_r p:nth-child(2){margin-top:0;}
    46 table .goods .img_r .p1{margin-top: 0;}
    47 table .goods .img_r .bz{ 20px;height: 20px;display: inline-block;background: url('../img/taobao_icon_01.jpg') no-repeat;background-size:100% 100% }
    48 table .goods .img_r .rose{ 20px;height: 20px;display: inline-block;background: url('../img/taobao_icon_02.jpg') no-repeat;background-size:100% 100% }
    49 table .last{background: none}
    50 table .last td{text-align: right;}
    51 table .last td:nth-child(1){text-align:left;}
    52 table .last td p:nth-child(1){margin-top: 10px;}
    53 table .last td p{line-height: 26px;}
    54 table .last td #zj{font-size:16px;color: #ff6300;margin-right:4px;margin-left: 4px;}
    55 table .last td #jf2{font-size:16px;color: #ff6300;margin-right:4px;margin-left: 4px;}
    56 /* ----------------------end---------------------- */

      js代码:

     1 // 点击全选
     2 var ck = document.getElementById('ck');
     3 var cks =document.getElementsByName('ck');
     4 ck.onclick = function (){
     5     for(var i of cks ){
     6         i.checked = true;
     7     }
     8 }
     9 
    10 //更改input的值并且计算总额,调用函数,!important
    11 function add(idName){
    12     var open = idName.getAttribute('class'); //获取他点击的地方
    13     var int = idName.parentNode.childNodes[3].value;//获取点击的int的value值
    14     var price = idName.parentNode.parentNode.childNodes[7].innerHTML;//获取单价
    15     var sum = idName.parentNode.parentNode.childNodes[11].innerHTML;//获取小计
    16     var jf = idName.parentNode.parentNode.childNodes[5].innerHTML;//获取积分
    17     var jfz = idName.parentNode.parentNode.childNodes[5].getAttribute('name');//获取购买单件商品的积分值即它的name值
    18     var jf2 = document.getElementById('jf2');
    19     if(open == 'add'){//判断input的class名字
    20         int = parseInt(int)+1;
    21     }else if(open == 'minus'){
    22         if(int > 1){
    23             int = parseInt(int)-1;
    24         }
    25     }
    26     idName.parentNode.childNodes[3].value = int;//重新定义int的value值
    27     idName.parentNode.parentNode.childNodes[11].innerHTML = parseInt(price) * parseInt(int);//重新定义总价
    28     idName.parentNode.parentNode.childNodes[5].innerHTML = parseInt(int) * parseInt(jfz);    //定义单个商品购买可获得的积分
    29 
    30 }
    31 
    32 //价格框失去焦点时
    33 var nubs = document.getElementsByName('nub');
    34 for(var i of nubs){
    35     i.onblur = bl;
    36 }
    37 function bl(fo){
    38     var intv = this.value;                // 获取input框的value值
    39     var price = this.parentNode.parentNode.childNodes[7].innerHTML;        //获取商品的单价
    40     var jf = this.parentNode.parentNode.childNodes[5].innerHTML;//获取积分
    41     var jfz = this.parentNode.parentNode.childNodes[5].getAttribute('name');//获取购买单件商品的积分值即它的name值
    42     this.parentNode.parentNode.childNodes[11].innerHTML = parseInt(price) * parseInt(intv);
    43     this.parentNode.parentNode.childNodes[5].innerHTML = parseInt(intv) * parseInt(jfz);    //定义单个商品购买可获得的积分
    44 }
    45 
    46 //更改积分和总价
    47 var bo = document.getElementsByTagName('body')[0];
    48 bo.onload = com;
    49 function com(){
    50     var zjf = document.getElementById('jf2');//获取总积分
    51     var zj = document.getElementById('zj');//获取在总价
    52     var jf = document.getElementsByClassName('jf');//获取单件商品的积分
    53     var xj = document.getElementsByClassName('xj');//获取单件商品的小计
    54     var jfz = 0 ;    //定义所有商品的积分为0
    55     var xjz = 0 ;
    56     for (var x = 0;x<jf.length;x++){
    57         jfz = jfz + parseInt(jf[x].innerHTML); //循环单件商品的积分并且累加到 jfz 中;
    58     }
    59     for (var i = 0;i<xj.length;i++){
    60         xjz = xjz + parseInt(xj[i].innerHTML); //循环单件商品的小计并且累加到 xjz 中;
    61     }
    62     zjf.innerHTML = jfz ; //定义所有商品的总积分
    63     zj.innerHTML = xjz ; //定义所有商品的总价
    64 }
    65 
    66 //单个删除商品
    67 var dels = document.getElementsByClassName('del');
    68 for(var x of dels){
    69     x.onclick = del ;
    70 }
    71 function del(){
    72     this.parentNode.parentNode.previousSibling.previousSibling.remove();//previousSibling 上一个兄弟
    73     this.parentNode.parentNode.remove();
    74 }
    75 
    76 //多选框打钩的删除
    77 var dele = document.getElementById('alldel'); //获取删除所选的按钮
    78 dele.onclick = delec ;        //添加点击事件
    79 function delec(){
    80     var cks = document.getElementsByName('ck');  //获取每个多选框
    81     console.log(cks);
    82     for (var i=cks.length-1;i>=0;i--){
    83         if(cks[i].checked == true){    //循环每个多选框,若他的checked值为true这删除他和她的父亲
    84             cks[i].parentNode.parentNode.previousSibling.previousSibling.remove();
    85             cks[i].parentNode.parentNode.remove();
    86             ck.checked = false;
    87         }
    88     }
    89 }
  • 相关阅读:
    synchronized介绍
    volatile介绍
    docker开启远程访问
    docker时间同步解决办法
    spring boot集成docker
    vue踩坑-Error: listen EADDRNOTAVAIL 192.168.1.122:8081
    大前端(全栈)学习路线指南
    做前端技术方案选型的时候,你是怎么做决策的?
    小程序源码丢失了怎么在微信平台反编译找回
    做前端技术方案选型的时候,你是怎么做决策的?
  • 原文地址:https://www.cnblogs.com/CcPz/p/8325145.html
Copyright © 2011-2022 走看看