淘宝购物车效果

淘宝购物车效果

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

  效果:

    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{width: 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{width: 1004px;height: 100px;margin-top: 30px;}
15 .box .logo{width: 173px;height: 46px;background: url('../img/logo.gif') no-repeat;background-size: 100% 100%;}
16 /* 页面导航 */
17 .box ul {margin-top: 24px;height: 18px;width: 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 {width: 986px;height: 23px;border-radius: 6px;background:#e5e5e5;margin-top: 16px;}
23 .box .shopcat div{float: left}
24 .box .shopcat .shopcat1 {width:162px;height: 23px;line-height: 23px;text-indent: 2em;font-size: 16px;}
25 .box .shopcat .shopcat2 {width: 44px;height: 23px;background: url('../img/taobao_bg.png') no-repeat}
26 .box .shopcat .shopcat1:nth-child(1){width: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;width: 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{width: 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{width: 84px;height:26px;display: inline-block;background: url('../img/taobao_relation.jpg') no-repeat;position: absolute;}
38 table .add{width: 14px;height: 14px;background: url('../img/taobao_adding.jpg') no-repeat;display: inline-block;background-size: 100% 100%;}
39 table .nub {width: 30px;height: 14px;text-align: center}
40 table .minus{width: 14px;height: 14px;background: url('../img/taobao_minus.jpg') no-repeat;display: inline-block;background-size: 100% 100%;}
41 table .goods {width: 360px;padding: 8px;}
42 table .goods img{float: left;}
43 table .goods .img_r{float: left;text-align: left;width: 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{width: 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{width: 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 }

 


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git初始化配置以及配置github

1&#xff0c;配置用户名和邮箱&#xff08;这里是我github中配置的用户名和邮箱&#xff09;&#xff0c;执行下面命令后&#xff0c;在C:\Users\yaosq盘下会出现一个全局文件.gitconfig. git config --global user.name "这里换上你的用户名" git config --global…

大学计算机专业高考听力,高考英语听力测试对考生听力策略反拨作用的研究

摘要&#xff1a;高考是我国高等院校招生的全国统一性考试,高考听力测试作为听力测试一部分主要测试高考考生的英语听力能力是否达到高校招生的选拔要求.在2011年,有933余万考生参加了高考,其中山东省参加高考的考生约59万人.作为一项全国性选拔考试,高考对我国的中学教育具有重…

网上找工作秘籍(3)

Do your New Years resolutions include finding a new job? The Internet is a great resource for job seekers. But far too many people dont use it effectively. 你今年的新年愿望中有找一份新工作吗&#xff1f;互联网是求职者可以利用的一大资源&#xff0c;但是很多人…

数据知识栈

并发不适合胆小者 我们都知道并发编程很难正确实现。 这就是为什么在执行线程任务之后要进行大量的设计和代码审查会议。 您永远不会将并发问题分配给经验不足的开发人员。 仔细分析问题空间&#xff0c;提出设计&#xff0c;并记录和审查解决方案。 这就是通常处理线程相关任…

Docker Swarm 常用命令

# 管理配置文件docker config # 查看已创建配置文件 - docker config ls # 将已有配置文件添加到docker配置文件中 - docker config create docker 配置文件名 本地配置文件# 管理swarm节点docker node # 查看集群中的节点 - docker node ls # 将manager角色降级为wor…

单点登录

单点登录&#xff1a;是指在多系统应用群中登录一个系统&#xff0c;便可在其他所有系统中得到授权而无需再次登录&#xff0c;包括单点登录与单点注销两部分 1、获取登录页面的表单信息&#xff1a; 用户名&#xff0c;密码等&#xff0c; eg:  var username document.ge…

我的GMAIL下蛋了,要的请留下姓,名和email!!

如果要的请留下First Name,Last Name,Email!先来先得&#xff0c;发完为止&#xff01;转载于:https://www.cnblogs.com/xiali/archive/2004/09/20/44731.html

微型计算机用什么评价判断,环评中常用评价等级的判定

环评中常用评价等级的判定环评就是分析项目建成投产后可能对环境产生的影响&#xff0c;并提出污染防治对策和措施。那么环评中常用评价等级的判定有哪些呢?一、生态影响评价工作等级划分表影响区域生态敏感性工程占地(水域)范围面积≥20km2或长度≥100km面积2km2&#xff5e;…

客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)[转]...

这段时间&#xff0c;写完了项目经理的工具箱---走出软件作坊&#xff1a;三五个人十来条枪 如何成为开发正规军&#xff08;三&#xff09; 、实施经理的工具箱--走出软件作坊&#xff1a;三五个人十来条枪 如何成为开发正规军&#xff08;五&#xff09;。于是想一气呵成&…

Spring Boot:快速启动MVC

我打算一年多以前写一篇关于Spring Boot的文章。 最后&#xff0c;我有时间和灵感。 因此&#xff0c;准备10到15分钟的高质量Spring教程。 我将用Gradle和嵌入式Tomcat演示Spring Boot的基础知识。 我使用Intellij IDEA而不是Eclipse&#xff0c;但是对于那些习惯Eclipse的人来…

opengl库区分:glut、freeglut、glfw、glew、gl3w、glad

//oepngl库 opengl原生库 gl* 随opengl一起发布 opengl实用库 glu* 随opengl一起发布 opengl实用工具库glut glut* 需要下载配置安装(太老了&#xff01;) opengl实用工具库开源版本freeglut glut* 需要下载配置安装(完全兼容glut&#xff0c;算是glut的代替品&#xff0c;但是…

css实现左(右)侧固定宽度,右(左)侧宽度自适应 ---清除浮动

老话长谈&#xff0c;css的不固定适应布局 不管是面试还是在平时的工作中&#xff0c;这样的布局形式一直都在用着&#xff0c;很常见&#xff0c;所以今天我就拿出来在唠叨一下&#xff0c; 既是给自己一个备忘存储&#xff0c;也是一个学习巩固的参考&#xff0c;知道大家都…

Func 与Action

Func< > 封装一个具有一个参数并返回 TResult 参数指定的类型值的方法&#xff0c; Action<T> 委托封装一个方法&#xff0c;该方法只有一个参数并且不返回值。 其实都是一个委托 Main() { Func<int, string > fun p.Name;//int是委托要执行的…

HDU1512 (左偏树)

2.1.2 可并堆的定义 可并堆(Mergeable Heap)也是一种抽象数据类型&#xff0c;它除了支持优先队列的三个基本操作(Insert, Minimum, Delete-Min)&#xff0c;还支持一个额外的操作——合并操作&#xff1a; H ← Merge(H1,H2) Merge( ) 构造并返回一个包含H1和H2所有元素的新堆…

布里斯托大学计算机科学专业排名,2021年布里斯托大学世界及专业排名 多个领域位居全英前十!...

它既是红砖大学的成员&#xff0c;也是罗素大学集团成员&#xff0c;在这所学校里共培养出了13位诺贝尔奖得主&#xff0c;这所学校就是布里斯托大学&#xff0c;该校的83%的研究成果都达到了世界领先水平&#xff0c;因此&#xff0c;越来越多的学生去布里斯托大学留学&#x…

Spring启动时的Spring社交示例,或者我如何不再担心和喜欢自动配置

对于Spring Boot 1.1.0.RC1&#xff0c;添加了自动配置和Spring Social的启动程序pom&#xff0c;这意味着我不必为pom添加一百个依赖关系&#xff0c;并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。 我将实现一个两页的Web应用程序。 一个将显示给定用户的T…

Djang之cookie和session

一 会话跟踪 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。从双方接通电话那一刻起&a…

html 安卓解锁,【华为手机解账户锁教程】手撕篇3 完美解锁华为EMUI8.0,8.1,8.2系统...

[free]华为手机在8.0系统以后都无法用工具解除账户锁。但要想解除账户锁&#xff0c;并不是没有办法&#xff0c;下面我们演示手工解账户锁的一种方法&#xff0c;本方案 针对所有华为机型的EMUI8.0 8.1 8.2有效&#xff0c;其他系统自测&#xff0c;需要华为手机解锁的可以联系…

java.lang.Error: Unresolved compilation problems

一般有两种常见的情况&#xff1a; 1、当一个 jar 文件的 MANIFEST.MF 中已经标记了 Sealed: true 时&#xff0c;这个 jar 内所有的 java package 中的类必须来自这个 jar 包&#xff0c;这是 JVM 的安全措施&#xff0c;配合数字签名就能防止篡改&#xff0c;微软就把它的 SQ…

正则表达式实例

1、匹配非负整数&#xff08;正整数 0&#xff09; <div class"qfverify"><input type"text" onkeyup"inputIntReg(this)" placeholder"请输入充值预算"><p class"qfverify__font">请输入有效数字</p…