vue实现移动手机电商商品分类列表添加购物车结算页面代码

代码语言:html

所属分类:电商

代码描述:vue实现移动手机电商商品分类列表添加购物车结算页面代码

代码标签: vue 移动 手机 电商 商品 分类 列表 添加 购物车 结算 页面 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
 
<meta charset="UTF-8">
 

 
 
<style>
body
{
   
font-size: 14px;
   
color: #363636;
   
background-color: #333;
}

h1
,
ul
,
li
,
p
{
   
margin: 0;
   
padding: 0;
}

li
{
   
list-style: none;
}

.g-panel {
   
margin: 0 auto;
   
width: 790px;
}

.cate,
.filter-opt,
.save {
   
cursor: pointer;
}

.device {
   
position: relative;
   
margin: 10px;
   
float: left;
   
width: 375px;
   
height: 667px;
   
background-color: #eee;
   
border-radius: 4px;
   
overflow: hidden;
}

header
{
   
padding: 0 4%;
   
position: relative;
   
height: 44px;
   
line-height: 44px;
   
background-color: #fff;
   
border-bottom: 1px solid #ddd;
}

.header-title {
   
position: absolute;
   
margin-left: 21%;
   
width: 50%;
   
font-size: 16px;
   
text-align: center;
}

.header-edit {
   
float: right;
   
padding: 0 10px;
   
cursor: pointer;
}

.tab-wrap {
   
height: 60px;
   
background: red;
   
overflow: hidden;
}

.cate-tab {
   
white-space: nowrap;
   
overflow-x: scroll;
   
-webkit-overflow-scrolling: touch;
   
background-color: #5D4285;
}

.cate {
   
display: inline-block;
   
width: 80px;
   
height: 70px;
   
color: #fff;
   
line-height: 60px;
   
text-align: center;
}

.tab-active {
   
background-color: #9A51FF;
}

.filter-bar {
   
display: flex;
   
height: 40px;
   
background-color: #fff;
   
border-bottom: 1px solid #E5E5E5;
   
line-height: 40px;
}

.filter-opt {
   
position: relative;
   
width: 33.3%;
   
color: #5F646E;
   
text-align: center;
}

.filter-active {
   
color: #7B57C5;
}

.filter-price:after {
   
position: absolute;
   
top: 13px;
   
margin-left: 4px;
   
content: '';
   
display: inline-block;
   
width: 8px;
   
height: 14px;
   
background: url('//repo.bfw.wiki/bfwrepo/icon/5dbed9c613b32.png') no-repeat;
   
background-size: 14px 14px;
}

.filter-active.price-up:after {
   
background: url('//repo.bfw.wiki/bfwrepo/image/6070ea24c5c5f.png') no-repeat;
   
background-size: 8px 14px;
}

.filter-active.price-down:after {
   
background: url('//repo.bfw.wiki/bfwrepo/image/6070ea4e4bd1a.png') no-repeat;
   
background-size: 8px 14px;
}

.goods-list {
   
padding-top: 8px;
   
height: 513px;
   
overflow-y: scroll;
}

.cart-list {
   
height: 560px;
}

.goods-item {
   
display: flex;
   
margin-bottom: 8px;
   
padding: 10px 6px;
   
min-height: 62px;
   
background: #fff;
}

.goods-img {
   
position: relative;
   
margin-right: 4%;
   
display: block;
   
width: 16%;
}

.goods-img img {
   
position: absolute;
   
top: 0;
   
left: 0;
   
width: 100%;
}

.goods-item .flag {
   
position: absolute;
   
top: 0;
   
left: 0;
   
width: 20px;
   
height: 20px;
   
font-size: 12px;
   
color: #fff;
   
text-align: center;
   
line-height: 20px;
   
background-color: #FC5951;
   
border-radius: 50%;
}

.goods-info {
   
position: relative;
   
width: 80%;
}

.goods-title {
   
width: 80%;
   
height: 38px;
   
color: #363636;
   
line-height: 1.4;
   
display: -webkit-box;
   
-webkit-box-orient: vertical;
   
-webkit-line-clamp: 2;
   
overflow: hidden;
}

.goods-price {
   
margin-top: 6px;
   
line-height: 1;
}

.goods-price span {
   
font-size: 15px;
   
color: #7a45e5;
   
/*   background: linear-gradient(90deg, #03D2B3 0, #2181FB 80%, #2181FB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent; */

}

.des {
   
font-size: 12px;
   
color: #888;
}

.save {
   
position: absolute;
   
right: 10px;
   
bottom: 2px;
   
width: 32px;
   
height: 22px;
   
background-color: #7a45e5;
   
font-size: 16px;
   
line-height: 19px;
   
text-align: center;
   
color: #fff;
   
border-radius: 12px;
   
overflow: hidden;
}

.empty-states {
   
padding-top: 60px;
   
font-size: 18px;
   
color: #AEB0B7;
   
text-align: center;
}

.cart-list .goods-info {
   
width: 68%;
}

.item-selector {
   
width: 12%;
}

.icon-selector {
   
position: relative;
   
margin: 16px auto 0 auto;
   
width: 16px;
   
height: 16px;
   
border-radius: 50%;
   
border: 2px solid #ccc;
   
cursor: pointer;
}

.selector-active {
   
background-color: #7a45e5;
   
border-color: #7a45e5;
}

.selector-active .icon {
   
position: absolute;
   
top: 2px;
   
left: 2px;
}

.goods-num {
   
position: absolute;
   
right: 10px;
   
top: 4px;
   
width: 32px;
   
color: #999;
   
text-align: center;
}

.show-num {
   
line-height: 28px;
}

.num-btn {
   
width: 100%;
   
height: 24px;
   
font-size: 20px;
   
line-height: 20px;
   
cursor: pointer;
}

.action-bar {
   
position: absolute;
   
left: 0;
   
bottom: 0;
   
width: 100%;
   
height: 52px;
   
font-size: 15px;
   
background-color: #fff;
   
border-top: 1px solid #ddd;
}

.g-selector {
   
float: left;
   
width: 70px;
   
margin-left: 4%;
   
height: 52px;
   
cursor: pointer;
}

.g-selector .item-selector {
   
position: relative;
   
display: inline-block;
}

.g-selector span {
   
position: absolute;
   
margin-left: 20px;
   
color: #5F646E;
   
top: 15px;
}

.total {
   
float: right;
   
color: #363636;
   
font-size: 14px;
   
line-height: 50px;
   
margin-right: 20px;
}

.total span {
   
color: #7A45E5;
}

.total b {
   
font-size: 17px;
   
margin-left: 4px;
}

.action-btn {
   
float: right;
   
width: 120px;
   
height: 100%;
   
color: #fff;
   
text-align: center;
   
font-weight: 300;
   
line-height: 52px;
   
cursor: pointer;
}

.buy-btn {
   
background-color: #7A45E5;
}

.del-btn {
   
display: none;
   
background-color: #FF4069;
}

.del-box .total {
   
display: none;
}

.del-box .buy-btn {
   
display: none;
}

.del-box .del-btn {
   
display: block;
}
</style>


 
</head>

<body>
 
<div class="g-panel">
   
<div class="device" id="page-list">
       
<header><span class="header-title">商品列表</span></header>
       
<div class="page">
           
<div class="tab-wrap">
               
<ul class="cate-tab">
                   
<li class="cate" v-bind:class="{'tab-active': cate_index === index}" v-for="(item, index) in cate" @click="toggleCate(index)">{{ item.des }}</li>
               
</ul>
           
</div>
           
<ul class="filter-bar">
               
<li class="filter-opt" v-bind:class="{'filter-active': filter_index === index, 'filter-price': item.method === 'sortPrice', 'price-down': price_isAsc, 'price-up': !price_isAsc}" v-for="(item, index) in sortMethods" @click="sortBy(item.method)">{{ item.name }}</li>
           
</ul>
           
<ul class="goods-list">
               
<li class="goods-item" v-for="(item, index) in list">
                   
<div class="goods-img">
                       
<img v-bind:src="item.img" v-bind:alt="item.name">
                       
<div class="flag" v-if="item.ishot"></div>        
                   
</div>
                   
<div class="goods-info">
                       
<p class="goods-title">{{ item.name }}</p>
                        <div class="goods-price&.........完整代码请登录后点击上方下载按钮下载查看

网友评论0