vue实现购物车小案例

Anna ·
更新时间:2024-09-20
· 854 次阅读

本文实例为大家分享了vue实现购物车小案例的具体代码,供大家参考,具体内容如下

最终效果

HTML部分:

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>shopcar.html</title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <link rel="stylesheet" href="css/shopcar.css" > <script src="js/shopcar.js"></script> </head> <body> <div class="content1" id="content1"> <div class="con1"> <input type="checkbox" id="all" class="all"> <p>全选</p> <p>商品</p> <p>单价</p> <p>数量</p> <p>小计</p> <p>操作</p> </div> <div class="con2"> <ul class="uls1"> <input type="checkbox" class="jingdong"> <p class="uls1p2">京东自营</p> </ul> <ul class="uls1a"> <p>满赠</p> <a href="#" >活动商品满19,即可领取商品一件></a> <p>查看赠品</p> <a href="#" >去凑单</a> </ul> <ul class="uls2" id="box"> <input type="checkbox" class="all all1"> <a href="#" > <img src="img/aaa.jpg" alt=""> <p>OPPO R11全网通双卡双待 64G 32G<br> 手机 玫瑰金色</p> </a> <p class="weight"><i id="weight">¥2000</i></p> <button class="min" @click="sub(1,2000)">-</button> <input ref="add1" type="text" class="txt" v-model="add1"> <button class="add" @click="add(1,2000)">+</button> <p class="xiaoji"><i id="xiaoji1">¥{{add2}}</i></p> <p class="a666 b666">删除</p> <p class="a666">移到我的关注</p> <p class="a666">加到我的关注</p> </ul> <ul class="uls2" id="box2"> <input type="checkbox" class="all all2"> <a href="#" > <img src="img/bbb.jpg" alt=""> <p>OPPO R11全网通双卡双待 64G 32G<br> 手机 玫瑰金色</p> </a> <p class="weight"><i id="weight">¥3000</i></p> <button class="min" @click="numsub(1,3000)">-</button> <input ref="num1" type="text" class="txt" v-model="num1"> <button class="add" @click="numadd(1,3000)">+</button> <p class="xiaoji"><i id="xiaoji1">¥{{num2}}</i></p> <p class="a666 b666">删除</p> <p class="a666">移到我的关注</p> <p class="a666">加到我的关注</p> </ul> <div class="uls4"> <div class="uls4L"> <input type="checkbox" class="all"> <a href="#" class="delete">删除选中商品</a> <a href="#" >移到我的关注</a> <a href="#" >清除下柜商品</a> </div> <div class="uls4R"> <div class="uls4a"> <div class="uls4a1"> <div class="aaa"> <p>已选择<i class="chose">0</i>件商品^</p> <p>总价:<span>¥</span><i>{{num3}}</i></p> </div> <p class="bbb">已节省:¥- 00.0</p> </div> </div> <div class="uls4b"> <a href="gouwu.html" rel="external nofollow" >去结算</a> </div> </div> </div> </div> </div> <div class="fixed"> <p>京东商城</p> <span>您确认删除吗?</span> <button class="sure">确认</button> <button class="quxiao">取消</button> </div> </body> <script type="text/javascript" src="js/jquery.min.js"></script> <script src="js/jquery-1.8.3.min.js"></script> <script src="js/shopcar.js"></script> <script type="text/javascript"> </script>

css部分

/* common */ body,div,dl,dt,dd,ul,li,h1,h2,h3,h4,h5,h6,code,form,input,textarea,p,th,td,fieldset,legend,figure{ margin:0; padding:0; } body{ font-family:"微软雅黑",Arial; } ul,ol{ list-style:none; } a{ text-decoration:none; } img{ border:0; } /* content1 */ .content1{ width: 100%; } .con1{ width:952px; height: 36px; margin:0 auto; background: #f3f3f3; } .con1 input{ float: left; margin-top: 10px; } .con1 p{ float: left; font-size: 12px; line-height: 36px; } .con1 p:nth-child(3){ margin-left: 60px; } .con1 p:nth-child(4){ margin-left: 300px; } .con1 p:nth-child(5){ margin-left: 93px; } .con1 p:nth-child(6){ margin-left: 93px; } .con1 p:nth-child(7){ margin-left: 93px; } .con1 p:nth-child(8){ margin-left: 93px; } .con2{ width: 952px; height: 364px; margin:0 auto; margin-top: 15px; } .con2 ul:first-child{ width: 100%; height: 36px; border-bottom: 1px solid #ececec; } .uls1 input, .uls1 p, .uls1 img{ float: left; margin-top: 10px; } .uls1{ background: white; } .uls1 p{ font-size: 12px; } .all{ margin-right: 10px; margin-left: 20px; } .uls1p1{ margin-right: 20px; font-weight: 600; } .jingdong{ margin-left: 20px; } .uls1a{ width: 100%; height:37px; border-top: 2px solid #aaaaaa; } .uls1a p,.uls1a a{ float: left; } .uls1a p:nth-child(1){ font-size: 14px; width: 35px; height: 20px; border: 1px solid #f5993c; text-align: center; line-height: 20px; color: #ff9933; margin-left: 20px; margin-right: 20px; margin-top: 5px; } .uls1a a:nth-child(2){ font-size: 12px; margin-top: 10px; margin-right: 20px; color: #999999; } .uls1a p:nth-child(3){ width: 60px; height: 20px; background:red; text-align: center; line-height: 20px; color: white; font-size: 14px; margin-top: 5px; } .uls1a a:nth-child(4){ font-size: 12px; margin-top: 10px; margin-left: 10px; color: #666666; } .uls1p2{ margin-left: 10px; color: white; width: 55px; height: 17px; background: #e4393b; text-align: center; } .uls2{ width: 100%; height: 98px; border-bottom:1px dashed #ececec; background: white; } .uls2 input,.uls2 a,.uls2 img,.uls2 li,.weight,button{ float: left; } .uls2 a img{ width: 60px; border: 1px solid #ececec; margin-top: 17px; } .uls2 p,.uls2 span{ font-size: 12px; } .uls2 a p{ font-size: 12px; color: #666666; margin-top: 16px; float: left; margin-left: 10px; } .uls2 input{ margin-top: 40px; } .uls2 li span{ display: block; } .uls2 .txt{ width: 32px; height: 19px; border: 1px solid #cccccc; border-left: none; border-right: none; outline:none; text-indent: 10px; margin-top: 20px; font-weight: 600; font-size: 12px; } .weight{ margin-left: 150px; margin-top: 19px; } .uls2 li{ margin-top: 19px; margin-left: 66px; margin-right: 37px; } .uls2 button{ width: 20px; height: 21px; border: none; border: 1px solid #cccccc; background: white; margin-top: 20px; outline:none; cursor: pointer; } .uls2 li p{ color: #999999; text-decoration: line-through; } .uls2 a .laji{ width: 18px; float: left; margin-left: 60px; margin-top: 20px; } .xiaoji{ float: left; margin-left: 47px; margin-top: 20px; margin-right: 80px; } .content1 i{ font-style: normal; } .uls3{ width: 100%; height: 36px; border-bottom: 1px dashed #cccccc; background: white; } .heji{ float: right; margin-right: 20px; } .heji p,.heji span{ float: left; font-size: 12px; line-height: 36px; } .heji span{ color: #999999; } .heji p:nth-child(2),.heji p:nth-child(4){ margin-right: 44px; } .uls4{ width: 100%; height: 60px; border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc; margin-top: 15px; background: white; } .uls4L{ float: left; margin-left: 10px; } .uls4R{ float: right; } .uls4L p{ float: left; line-height: 60px; font-size: 12px; color: #999999; margin-right: 10px; } .uls4L input{ float: left; margin-top: 25px; margin-right: 10px; } .uls4L a{ font-size: 12px; color: #999999; line-height: 60px; } .uls4L a:first-child{ margin-right: 5px; } .uls4a,.uls4b{ float: left; } .uls4a1 p{ float: left; font-size: 12px; } .uls4a2 p ,.uls4a2 span{ float: left; font-size: 12px; margin-top: 10px; } .uls4a{ margin-right: 20px; } .aaa p{ font-size: 12px; color: #999999; } .aaa p:first-child{ margin-right: 20px; margin-top: 20px; } .aaa p:last-child{ margin-top: 20px; } .aaa span,.aaa i{ color: red; font-weight: 600; } .bbb{ float: left; color: #999999; } .shopnum{ color: #ff9933; font-weight: 600; } .uls4b a{ width: 70px; height: 61px; display: block; background: red; font-size: 14px; color: white; font-weight: 600; text-align: center; line-height: 60px; } .weight{ margin-right: 60px; } .a666{ cursor: pointer; } .fixed{ position: fixed; width: 400px; height: 200px; background: white; z-index: 200; top:40%; left: 30%; border: 1px solid red; display: none; } .fixed p{ width: 380px; height: 30px; background: red; font-size: 12px; color: white; line-height: 30px; padding-left: 20px; } .fixed span{ display: block; color: #666666; margin-top: 20px; text-align: center; } .fixed button:nth-child(3){ margin-left: 140px; } .fixed button{ margin-right: 20px; border: none; width: 50px; height: 30px; margin-top: 50px; border: 1px solid red; color: red; background: white; }

js部分

//基础加减 new Vue({ el:"#content1", data:{ add1:1, add2:2000, num1:1, num2:3000, num3:5000, //设置总价的最小值 }, methods:{ add:function(inc,inc2,inc3){ this.add1 += inc; this.add2 += inc2; this.num3 = this.add2 +this.num2; }, sub:function(dec,dec2,dec3){ this.add1 -= dec; this.add2 -= dec2; this.num3 = this.add2 +this.num2; if(this.add1 <= 1){ this.add1 =1; } if(this.add2 <= 2000){ this.add2 =2000; } if(this.num3 <= 5000){ this.num3 =5000; } }, numadd:function(mun1,mun2,mun3){ this.num1 += mun1; this.num2 += mun2; this.num3 = this.add2 +this.num2; this.num3 = this.add2 +this.num2; }, numsub:function(mun1,mun2,mun3){ this.num1 -= mun1; this.num2 -= mun2; this.num3 = this.add2 +this.num2; if(this.num1 <= 1){ this.num1 =1; } if(this.num2 <= 3000){ this.num2 =3000; } if(this.num3 <= 5000){ this.num3 =5000; } }, } }); $(function(){ $(".b666").click(function(){ var $this = $(this); $(".fixed").css("display","block"); $(".sure").click(function(){ $this.parent().css("display","none"); $(this).parent().css("display","none"); }); $(".quxiao").click(function(){ $(this).parent().css("display","none"); }); }); }); //全选 $("#all").click(function(){ if($("#all[type='checkbox']").prop("checked") == true){ $(".all").attr('checked', true); $(".chose").html(2); }else{ $(".all").attr('checked', false); $(".chose").html(0); } }); $(".all1").click(function(){ if($(".all1[type='checkbox']").prop("checked") == true){ $(".chose").html(1); }else{ $(".chose").html(0); } }); $(".all2").click(function(){ if($(".all2[type='checkbox']").prop("checked") == true){ $(".chose").html(1); }else{ $(".chose").html(0); } }); $(".delete").click(function(){ if($(".all[type='checkbox']").prop("checked") == false){ return; } if($("#all[type='checkbox']").prop("checked") == true){ $(".uls2").css("display","none"); $(".chose").html(0); } });



VUE 购物车

需要 登录 后方可回复, 如果你还没有账号请 注册新账号