微信小程序电商实战(-)商城首页

首先在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章 构建新闻详情 ...
随机推荐
- 堆排序 P1090 合并果子
P1090 合并果子 本题要用到堆 一个小根堆 每次取出两堆,合并成一堆,为了让多多花费体力最少,我们要尽量少的重复大堆的合并,因此每次合并完以后,要把新的一坨放到堆里排一排,维护一个堆 有必要强调一 ...
- eq
<a class="s">1</a> <a class="s">2</a> <a class=" ...
- centos6删除nginx
1.ps -ef|grep nginx 查看nginx进程 2.找到nginx相对应的位置 3.停止nginx服务: 4.删除nginx安装的相关路径(根据自己安装的情况来删除) 如果是yum安装,就 ...
- 4、网上收集Storm 讲解图
1.Storm与Kafka集成 我们知道storm的作用主要是进行流式计算,对于源源不断的均匀数据流流入处理是非常有效的, 而现实生活中大部分场景并不是均匀的数据流,而是时而多时而少的数据流入,这种情 ...
- gitlab备份
#!/bin/bash backup_date=`date "+%Y_%m_%d"` delete_date=`date +%Y_%m_%d -d "7 days ago ...
- win10配置java开发环境
安装java(JDK) Oracle官网下载地址 选择JavaSE > Downloads 选择最新版本 > Download Accept License Agreement 选择要下载 ...
- Appium测试安卓apk遇到的问题及解决方法
1.Showing error - “Returned value cannot be converted to WebElement: {ELEMENT=1} 解决方法:https://sqa.s ...
- 优雅的使用windows
1. 快捷键 win+数字键:打开任务栏对应位置的程序 eg:快捷打开程序,重复该组合键有两个效果,如果只打开了一个窗口,再次按下组合键即可最小化,如果打开了多个窗口,则可以在同一程序的多个窗口中切换 ...
- C# Finalize和Dispose的区别
一:总结 1.Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收.所以,我们也可以这样来区分 托管和非托管资源.所有会由GC自动回收的资源,就是 ...
- strcmp()字符串比较函数用法
函数原型: int strcmp(const char *s1, const char *s2); 头文件: #include <string.h> 功能: 用来比较两个字符串 参数: s ...