vue 상품 가감 계산 총가격 실현 실례 코드
대략적인 효과 도 는 다음 과 같다.
전체 코드 는 여기에 있 습 니 다.직접 복사 하면 사용 할 수 있 습 니 다.
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
html{
background: rgb(214,175,209);
}
/* */
#app{
text-align: center;
margin-top: 8%;
position: relative;
}
.goods_box{
width: 70vw;
margin-left:15vw;
height: auto;
margin-top: 5%;
}
.goods_box ul{
width: 100%;
overflow:auto;
}
.goods_box ul li{
float: left;
width: 23%;
height: auto;
cursor: pointer;
margin: 2% 1%;
font-size: 0.6rem;
background: #fff;
display: flex;
align-items: center;
align-content: center;
padding-bottom: 1%;
border-radius: 4px;
}
.goods_img{
width: 40%;
border-radius: 6px;
height: auto;
margin-left: -4%;
margin-top: -4%;
box-shadow: 3px 3px 2px rgba(0,0,0,.24);
}
.price{
margin-left: 6%;
text-align: left;
}
.or_price{
color: rgba(242,58,58,0.8);
text-decoration: line-through;
}
.goods_name{
margin-top: 4%;
}
.now_and_or{
margin-top: 5%;
}
.now_price{
font-size: 1rem;
}
/* */
.count_box{
width: 70vw;
margin-left:15vw;
height: auto;
border: 2px dashed rgb(253,234,93);
display: flex;
align-items: center;
padding: 2%;
position: relative;
}
.count_box .goods_img{
width: 100px;
height: 100px;
margin:0;
box-shadow: none;
}
.count_box ul{
width: 100%;
overflow:auto;
}
.count_box ul li{
float: left;
cursor: pointer;
font-size: 0.6rem;
display: flex;
align-items: center;
align-content: center;
padding-top: 2%;
padding-bottom: 1%;
border-radius: 4px;
}
.count_box ul li .price{
text-align: center;
}
.img_box{
position: relative;
}
.add{
font-size: 2rem;
color:rgb(253,234,93);
margin-left: 20px;
}
.delete{
display: flex;
align-items: center;
color:rgb(253,234,93);
font-size: 34px;
position: absolute;
top: -25%;
right: -9%;
cursor: pointer;
z-index: 1;
}
/* */
.result{
margin-top: 16%;
margin-left: -30px;
font-size: 1rem;
display: flex;
align-items: center;
text-align: left;
background: rgb(214,175,209);
}
.result_content{
display: block;
margin-left: 2rem;
}
.or_amount{
text-decoration: line-through;
line-height: 2rem;
}
.equal_to{
font-size: 2rem;
color:rgb(253,234,93);
}
.now_amount span{
color:rgb(253,234,93);
}
.img01{
position: absolute;
}
.buy{
position: absolute;
right: 12px;
bottom: 10px;
font-size: 0.75rem;
}
</style>
</head>
<body>
<!-- -->
<div id="app">
<div class="goods_box">
<ul>
<li class="goods" v-for="(item, index) in list" @click="choose(index)">
<img class="goods_img" v-bind:src="item.goods_img">
<div class="price">
<div class="goods_name">
{{item.name}}
</div>
<div class="now_and_or">
<div class="now"> :<span class="now_price">{{item.hide_price}}¥</span></div>
<div class="or"> :<span class="or_price">{{item.or_price}}¥</span></div>
</div>
</div>
</li>
</ul>
</div>
<div class="count_box">
<ul>
<li v-for="(item, index) in count_list" @click="deleteGoods(index)">
<div class="count_box_item">
<div class="img_box">
<div class="delete">×</div>
<img class="goods_img" v-bind:src="item.goods_img">
</div>
</div>
<div class="add">+</div>
</li>
<li>
<div class="result">
<div class="equal_to">=</div>
<div class="result_content">
<div class="or_amount"> :{{or_amount}}¥</div>
<div class="now_amount"> :<span>{{now_amount}}¥</span></div>
</div>
</div>
</li>
</ul>
<a class="buy" href="#" rel="external nofollow" > </a>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
<script type="text/javascript">
var idsArray = [];
var or_priceArray = [];
var now_priceArray = [];
//
function removeDuplicatedItem(arr) {
for(var i = 0; i < arr.length-1; i++){
for(var j = i+1; j < arr.length; j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}
var app = new Vue({
el:"#app",
data:{
//
list:[
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"100",
now_price:"10",
//
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"200",
now_price:"20",
hide_price:"?",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"300",
now_price:"30",
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"100",
now_price:"10",
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"200",
now_price:"20",
hide_price:"?",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"300",
now_price:"30",
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"100",
now_price:"10",
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"200",
now_price:"20",
hide_price:"50",
name:" "
},
{
goods_img:"http://cdn.w7.cc/images/2018/05/19/mdqzEyVEeqBdK3xKulqskX9ryMMfTbgbU1jMOE7i.jpeg?imageView2/5/w/88/format/png",
or_price:"300",
now_price:"30",
hide_price:"50",
name:" "
}
],
//
count_list:[],
//
or_amount:0,
//
now_amount:0
},
methods:{
choose: function(index){
var arr = this.list;
var that = this;
//
this.count_list = [];
this.or_amount = 0;
this.now_amount = 0;
or_priceArray = [];
now_priceArray = [];
idsArray.push(index);
//
removeDuplicatedItem(idsArray);
//
for( var i=0;i<idsArray.length;i++){
that.count_list.push(arr[idsArray[i]]);
or_priceArray.push(parseInt(arr[idsArray[i]].or_price));
now_priceArray.push(parseInt(arr[idsArray[i]].now_price));
}
//
for(var i=0;i<or_priceArray.length;i++){
this.or_amount += or_priceArray[i];
this.now_amount += now_priceArray[i];
}
},
//
deleteGoods: function(index){
this.or_amount = 0;
this.now_amount = 0;
this.count_list.splice(index,1);
idsArray.splice(index,1);
or_priceArray.splice(index,1);
now_priceArray.splice(index,1);
//
for(var i=0;i<or_priceArray.length;i++){
this.or_amount += or_priceArray[i];
this.now_amount += now_priceArray[i];
}
}
}
})
</script>
</body>
</html>
총결산위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 vue 가 상품 의 가감 을 실현 하여 총 가격 을 계산 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.만약 에 궁금 한 점 이 있 으 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.