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

首先在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章 构建新闻详情 ...
 
随机推荐
- ldap认证jupyter notebook
			
虽然jupyter hub是支持ldap的,见ldapauthenticator: 但是登录成功后似乎要以登录用户名启动notebook,而登录用户在服务器上不存在,于是500了: 在服务器上通过pa ...
 - 2017-12-26--mysql(5.6.15),linux下安装使用
			
本文档的目的是,指导使用者安装.配置.还原所需要用到的mysql数据库.仅提供linux版本服务器的安装说明,且linux版本为64位的Centos6.4.同时,会提供的mysql安装包(MySQL- ...
 - C++ 中的sort()排序函数用法
			
sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list.向量排序. 实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此 ...
 - java内存机制和GC垃圾回收机制
			
Java 内存区域和GC机制 转载来源于:https://www.cnblogs.com/zhguang/p/3257367.html 感谢 目录 Java垃圾回收概况 Java内存区域 Java对象 ...
 - sqflite插件简单使用  key======================
			
https://blog.csdn.net/weixin_34183910/article/details/86029912 https://blog.csdn.net/u013255127/arti ...
 - 常用的tcpdump操作
			
tcpdump -i eth0 icmp and host 192.168.0.111 -nn -tttt 用ping检测网络情况时抓包,-nn 显示ip和端口而不是机器名和进程名,-tttt 显示详 ...
 - UML类图新手入门级介绍(转)
			
首先,看动物矩形框,它代表一个类(Class).类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示.第二层是类的特性,通常就是字段和属性.第三层是类的操作,通常是方法或行为.前面的符号,+ ...
 - Iview的小经验
			
1.动态控制form验证的小红星 HTML部分: <FormItem :class="{requireStar:bankFlag1}"> CSS部分: /*动态必填项c ...
 - Java面向对象内存分析
			
title: Java面向对象内存分析 date: 2018-07-28 11:12:50 tags: JavaSE categories: - Java - JavaSE 一.Java虚拟机的内存区 ...
 - JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
			
网上搜索了,目前主流的Js代码压缩工具主要有Uglify.YUI Compressor.Google Closure Compiler,简单试用了UglifyJS 和Google Closure Co ...