微信小程序电商实战(-)商城首页
首先在app.json中配置页面和底部tabbar
{
"pages":[
"pages/index/index",
"pages/kind/kind",
"pages/car/car",
"pages/my/my"
],
"window":{
"backgroundTextStyle": "dark",
"navigationBarBackgroundColor": "#50a7e4",
"navigationBarTitleText": "首页",
"navigationBarTextStyle": "#fff",
"enablePullDownRefresh": "true"
},
"tabBar": {
"color": "#666",
"selectedColor": "#41a5e5",
"fontSize": "28rpx",
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "pages/images/home.png",
"selectedIconPath": "pages/images/home_in.png"
},
{
"pagePath": "pages/kind/kind",
"text": "分类",
"iconPath": "pages/images/kind.png",
"selectedIconPath": "pages/images/kind_in.png"
},
{
"pagePath": "pages/car/car",
"text": "购物车",
"iconPath": "pages/images/car.png",
"selectedIconPath": "pages/images/car_in.png"
},
{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "pages/images/mine.png",
"selectedIconPath": "pages/images/mine_in.png"
}
]
},
"networkTimeout": {
"request": 10000,
"downloadFile": 10000
},
"debug": true
}
正式开始写代码了,首先是index.wxml
<scroll-view scroll-y="true">
<!-- 轮播图部分开始 -->
<view class="banner">
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" indicator-color="rgba(228,228,228,1)" indicator-active-color="#FECA49">
<block wx:for="{{imgUrls}}">
<swiper-item>
<image src="{{item}}" class="slide-image" width="355" height="200" />
</swiper-item>
</block>
</swiper>
</view>
<!-- 轮播图部分结束 -->
<!-- 搜索部分开始 -->
<view class="search" bindtap='search'>
<image src="../images/search.png"></image>
<text>搜索商品</text>
</view>
<!-- 搜索部分结束 -->
<!-- 特价列表开始 -->
<view class="specialPrice">
<view class="title">今日特价</view>
<block wx:for="{{goodsList}}">
<view class="goodsList">
<image class="goodsPic" src='{{item.imgUrl}}' bindtap='goToDetail'></image>
<view class="goodsInfo">
<view class="goodsTitle ellipsis2">{{item.title}}</view>
<view class="price">
<text class="fl newPrice">¥{{item.newPrice}}</text>
<text class="fl oldPrice">¥{{item.oldPrice}}</text>
<view>
<image class="fr car1" src='../images/car1.png' bindtap='showCar' data-id="{{item.id}}"></image>
</view>
</view>
</view>
</view>
</block>
</view>
<!-- 特价列表结束 -->
</scroll-view>
接着index.wxss
.banner {
width: 100%;
} swiper {
height: 240rpx;
} image {
width: 100%;
display: block;
} .kindList {
padding-top: 20rpx;
background: #fff;
} .kindList .flex-item {
float: left;
width: 25%;
text-align: center;
} .flex-item image {
width: 100rpx;
height: 100rpx;
margin: 0 auto;
} .imageGroup image {
width: 100px;
height: 100px;
} .flex-item text {
text-align: center;
padding: 10rpx 0 20rpx;
display: block;
font-size: 28rpx;
} .search {
display: -webkit-flex;
display: flex;
align-items: center;
width: 86%;
padding: 12rpx 0;
margin: 30rpx auto;
border: 1px solid #d8d8d8;
border-radius: 16rpx;
background: #fff;
color: #999;
} .search image {
width: 40rpx;
height: 40rpx;
margin: 0 10rpx;
} .specialPrice {
padding: 0 30rpx;
} .title {
margin: 20rpx 0;
border-bottom: 1px solid #d8d8d8;
padding-bottom: 10rpx;
font-size: 36rpx;
font-weight: bold;
} .goodsList {
padding: 20rpx;
border-bottom: 1px solid #d8d8d8;
display: -webkit-flex;
display: flex;
} .goodsList:last-child {
border-bottom: none;
} .goodsList .goodsPic {
width: 180rpx;
height: 180rpx;
border: 1px solid #d8d8d8;
} .goodsInfo {
padding: 0 20rpx;
position: relative;
flex:;
} .goodsTitle {
font-size: 32rpx;
font-family: '微软雅黑';
} .price {
position: absolute;
left: 20rpx;
bottom:;
width: 100%;
display: -webkit-flex;
display: flex;
align-items: flex-end;
} .price .newPrice {
font-size: 36rpx;
margin-top: 10rpx;
margin-right: 10rpx;
} .price .oldPrice {
text-decoration: line-through;
color: #d8d8d8;
font-size: 28rpx;
margin-top: 20rpx;
align-items: -webkit-flex-end;
} .price view {
flex:;
} .car1 {
width: 56rpx;
height: 56rpx;
background: #50a7e4;
border-radius: 50%;
}
最后是index.js
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
hidden: true,
count: '1',
imgUrls: [
'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'
],
indicatorDots: true,
autoplay: false,
interval: 5000,
duration: 1000,
goodsList: [
{
id: 132,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i1/858568558/TB2JQ.tbnAKL1JjSZFCXXXFspXa_!!858568558.jpg_b.jpg',
title: '特仑苏整箱装特仑苏整箱装',
oldPrice: 56,
newPrice: 40
},
{
id: 122,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i4/725677994/TB1nWgGaHsTMeJjy1zeXXcOCVXa_!!2-item_pic.png_b.jpg',
title: '卫龙辣条100g装',
oldPrice: 4,
newPrice: 3
},
{
id: 302,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i3/494858290/TB1.jYocxHI8KJjy1zbXXaxdpXa_!!0-item_pic.jpg_b.jpg',
title: '洁丽雅纯棉毛巾',
oldPrice: 9.9,
newPrice: 8.8
},
{
id: 498,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i1/858568558/TB2JQ.tbnAKL1JjSZFCXXXFspXa_!!858568558.jpg_b.jpg',
title: '特仑苏整箱装特仑苏整箱装',
oldPrice: 56,
newPrice: 40
},
{
id: 588,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i4/725677994/TB1nWgGaHsTMeJjy1zeXXcOCVXa_!!2-item_pic.png_b.jpg',
title: '卫龙辣条100g装',
oldPrice: 4,
newPrice: 3
},
{ id: 600,
imgUrl: 'https://img.alicdn.com/bao/uploaded/i3/494858290/TB1.jYocxHI8KJjy1zbXXaxdpXa_!!0-item_pic.jpg_b.jpg',
title: '洁丽雅纯棉毛巾',
oldPrice: 9.9,
newPrice: 8.8
}
]
},
onLoad: function () {
var that = this
//调用应用实例的方法获取全局数据
app.getUserInfo(function (userInfo) {
//更新数据
that.setData({
userInfo: userInfo
})
})
wx.getSystemInfo({
success: function (res) {
that.setData({
height: res.windowHeight + 'px'
});
}
})
},
search: function (e) {
wx.navigateTo({
url: '/pages/search/search'
})
}
})
到这里,一个精美的微信小程序商城首页就呈现给大家了,如果发现有什么问题,可以留言交流。
后续会慢慢更新一个完整的项目。如果您看了觉得对您有帮助,请支持一下,谢谢
微信小程序电商实战(-)商城首页的更多相关文章
- 微信小程序电商实战-首页(上)
嗨,大家好!经过近两周的精心准备终于开始微信小程序电商实战之路喽.那么最终会做成什么样呢?当然可以肯定不会只做一个静态demo哦,先把我们小程序电商实战的整体架构发出来晒一下,请看下图: 架构图. ...
- 微信小程序电商实战-入门篇
小程序开发工具有新版本更新啦!开发体验更好了,详情可以查看微信公众平台-小程序https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.h ...
- 微信小程序电商实战-商品列表流式布局
今天给大家分享一下微信小程序中商品列表的流式布局方式,根据文章内容操作就可以看到效果哦~~~ 流式布局概念 流式布局也叫百分比布局 把元素的宽,高,margin,padding不再用固定数值,改用百分 ...
- 微信小程序电商实战-商品详情(上)
先看一下今天要实现的小程序商品详情页吧! 商品详情.gif 本期我们要实现小程序商品详情页的头部标题.头部轮播.商品详情浮动按钮和商品内页布局. 一.设置头部标题 如上图所示,头部标题是商品详情 ...
- 微信小程序电商实战-首页(下)
好了,上一期我们把首页搜索.导航栏和广告轮播给做完了,那么接下来会继续完成我们首页的剩余部分,先看我们要实现的效果吧! 本期实现效果图.gif 本期我们要实现首页的实时热销榜.福利专场和左下方个人 ...
- 微信小程序支付接入实战
1. 微信小程序支付接入实战 1.1. 需求 最近接到一个小程序微信支付的需求,需要我写后台支持,本着能不自己写就不自己写的cv原则,在网上找到了些第三方程序,经过尝试后,最后决定了这不要脸作者的 ...
- 《微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记1)WePY开发环境的安装
WePY的安装或更新都通过npm进行,全局安装或更新WePY命令行工具,使用以下命令: npm install wepy-cli -g 稍等片刻,成功安装后,即可创建WePY项目. 注意:如果npm安 ...
- 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
Taro本身实现的情况类似于mpvue,mpvue的未来展望中也包含了支付宝小程序,现在的版本中,也可以使用不同的构建命令来构建出百度小程序的支持,如第10章所示,但是现在Taro先于mpvue实现了 ...
- 微信小程序入门与实战 常用组件API开发技巧项目实战*全
第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...
随机推荐
- vuex store刷新存储状态
app.vue 平时不想把信息存到session里,只有无可奈何的时候才准备村 <script> export default { name: 'App', created() { //刷 ...
- Vue 组件&组件之间的通信 之 子组件向父组件传值
子组件向父组件传值:子组件通过$.emit()方法以事件形式向父组件发送消息传值: 使用步骤: 定义组件:现有自定义组件com-a.com-b,com-a是com-b的父组件: 准备获取数据:父组件c ...
- ORA-08176 错误的一个案例
在演示事务的read only mode 的时候,因为一个错误有了这个意外的收获.场景是这样的: 在session 1 中执行了如下的语句. SQL> set transaction read ...
- ThreadLocal的意义和实现
可以想像,如果一个对象的可变的变量被多个线程访问时,必然是不安全的. 在单线程应用可能会维持一个全局的数据库连接,并在程序启动时初始化这个连接对象,从而避免在调用每个方法时都传递一个Connectio ...
- 2019十大安卓手游折扣平台app排行榜
2019游戏版号陆续开放,玩家又有许多好游戏可以玩了. 小编就以当前最热门的十个游戏来点评手游折扣平台App排行榜吧! 排名第一的游戏: 少年西游记-新征程 老平台,集成SDK,良心平台,覆盖全网游戏 ...
- 二.误删除MySQL用户,恢复方法
误删除MySQL用户导致无法进入数据库 一.方法一 1.停止数据库 [root@db02 ~]# /etc/init.d/mysqld stop 2.跳过授权表,跳过网络启动数据库 [root@db0 ...
- Bigger-Mai 养成计划,Docker之安装,部署
CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...
- IDEA调用其它模块module的类方法
IDEA支持调用本project中其他模块的包里面的方法(需要配置该模块和src同级的.iml文件,配置完需要等一会才生效,尝试切换到桌面以...) 这样会使IDEA的project的模块间有依赖,该 ...
- MySQL的4种事务隔离级别
链接: https://www.cnblogs.com/huanongying/p/7021555.html https://blog.csdn.net/qq_33226422/article/det ...
- Cordova 笔记
npm instal -g cordova 安装 卸载cordova npm unistall cordova -g 安装指定版本 npm install -g cordova@ 1.创建应用项目及目 ...