vue实现购物车小案例

本文实例为大家分享了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实现购物车小案例 的全部内容, 来源链接: utcz.com/z/341908.html

回到顶部