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

首先在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章 构建新闻详情 ...
随机推荐
- DBDocumentGenerator使用
报错1:未能成功安装.NET Framework 3.5(包括.NET2.0和3.0) 解决办法:安装离线包. ( 1.将“sxs”文件复制到C盘,用完后可以删除:2.右键以管理员身份运行NET Fr ...
- 对比剖析Swarm Kubernetes Marathon编排引擎
Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目.Docker原生集群(S ...
- 兼容ie8总结
最近做了个兼容ie8的项目,把遇到的一些坑总结一下,欢迎大神指正,共勉. 一. js相关 1. 关于库的引用 jquery只能引用1.x的版本,swiper只能引用2.x的版本. 2. 动态生成的d ...
- Nginx try_files 指令
Nginx try_files 指令 按顺序检查文件是否存在,返回第一个找到的文件.结尾的斜线表示为文件夹 -$uri/.如果所有的文件都找不到,会进行一个内部重定向到最后一个参数. 务必确认只有最后 ...
- 二分优化lis和STL函数
LIS:最长上升子序列: 这个题我们很显然会想到使用dp, 状态设计:dp[i]代表以a[i]结尾的LIS的长度 状态转移:dp[i]=max(dp[i], dp[j]+1) (0<=j< ...
- Mac提醒休息软件Stretchly(很好用)
github地址: https://github.com/hovancik/stretchly 安装就不介绍了,他的自定义时间目前还是有点麻烦,介绍一下. 配置文件是 ~/Library/Applic ...
- Mapped Statements collection already contains value for ***.***的问题
情景,在我们配置项目或者开发的过程中,可能由于项目工程量大或误操作等原因,造成Map映射文件的ID重复,造成项目启动报以下错误, org.springframework.beans.factory.B ...
- Guitar Por如何演奏刮弦
每当我们听到吉他现场演出的时候,看到吉他手在激烈的刮弦时,都觉得很酷,非常有感染力.刮弦在我们弹吉他或编曲时,会经常用到,虽然时间很短,但会为你加分不少. 那么我们应该如何演奏刮弦呢,我们先用E5和弦 ...
- java解压多层目录中多个压缩文件和处理压缩文件中有内层目录的情况
代码: package com.xiaobai; import java.io.File; import java.io.FileOutputStream; import java.io.IOExce ...
- JavaScript基础数据类型(一)
动态类型 JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定.这也意味着你可以使用同一个变量保存不同类型的数据: var foo = ...