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