一. 立一个flag
微信小程序一般的功能实现说实话,还是挺简单的,网上有很多可以借鉴然后copy修改,但是样式设置特别复杂。这一篇文章我会不断扩充,因为需要记住的样式太多了,需要不断积累。
在这里补充一个很重要的知识点:
二. 样式
1.第一种
xwml代码展示
<view class='selection'>
<view class='header'>
<text>精品推荐</text>
<text class='all'>全部精品</text>
</view>
<view class='content'>
<view class='content-item' wx:for='{{contentItem}}' wx:key="key">
<image src='../images/matcha.jpg'></image>
<view class='content-item-introduction'>这里是内容介绍</view>
</view>
</view>
</view>
wxss代码展示
/* 每一个大view底部有灰色分隔线 */
.selection{
border-bottom: 4px solid #ddd;
}
.header{
/* 精品推荐 左边框线条加粗,固体和绿色 */
border-left-width: 2px;
border-left-style:solid;
border-left-color: green;
/* 水平布局,中间对齐 */
display: flex;
justify-content: space-between;
/* 元素中心点居中对齐 */
align-items: center;
height: 70rpx;
padding-left: 20rpx;
padding-right: 20rpx;
margin-top: 20rpx;
}
.all{
color:green;
font-size: 10px;
}
.content{
/* 水平方向居中对齐 */
display: flex;
justify-content: center;
/* 元素宽度不够时,自动换到下一行 */
flex-wrap: wrap;
}
.content-item{
width: 45%;
height: 250rpx;
background-color:goldenrod;
/* 元素间的间距,包括上下左右 */
margin: 2px;
/* 这里的定位是为了当作content-item-introduction内容的父本 */
position: relative;
}
/* 元素内的图片格式设置为全部填满 */
.content-item image{
width: 100%;
height: 100%;
}
.content-item-introduction{
/* 绝对定位,以父本来作为定位 */
position: absolute;
bottom: 0px;
color: white;
font-size: 12px;
/* 设置渐变色,从底部开始从黑色变成白色,rgba最后一个参数代表透明度 */
background: -webkit-linear-gradient(bottom,rgba(0,0,0,0.8),rgba(0,0,0,0));
/* text内容设置为item元素一半高度,长度填满 */
height: 125rpx;
width: 100%;
/* 设置主轴方向为竖轴,并且元素从底部开始 */
display: flex;
flex-direction: column;
justify-content: flex-end;
/* 距离底部1% */
padding-bottom: 1%;
}
效果展示
中间的那块区域就是效果展示,可以看到上面是文字“精品推荐”“全部精品”,以及最左边是一条小绿杠,中间是四张图片,每一张都是相隔间距,并且每一张图片中间是有内容介绍的,内容介绍的背景颜色是渐变色,从底部开始逐渐变白,最下面是灰色的分隔线,清晰明了。
2.第二种
wxml代码展示
<view>
<view class='header'>
<text>热门推荐</text>
<text class='all'>全部热门</text>
</view>
<view class='list'>
<view class='list-image'>
<image src='../images/chocolate.jpg' class='list-image-back'></image>
<image src='../images/portrait.jpg' class='list-image-portrait'></image>
</view>
<view class='list-text'>
<view class='list-text-title'>
<text>标题标题标题</text>
</view>
<view class='list-text-content'>
<text>内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容</text>
</view>
</view>
</view>
</view>
wxss代码展示
.list{
width: 100%;
height: 500rpx;
}
.list-image{
width: 100%;
height: 300rpx;
position: relative;
}
.list-image-back{
width: 100%;
height: 100%;
}
.list-image-portrait{
width: 100rpx;
height: 100rpx;
border-radius: 50%;
position: absolute;
bottom: -50rpx;
right: 20rpx;
}
.list-text{
width: 100%;
height: 200rpx;
}
.list-text-title{
font-size: 15px;
color: black;
margin-top: 20rpx;
}
.list-text-content{
font-size: 12px;
color: gray;
margin-top: 20rpx;
}
效果展示
上面部分已经讲述过了,中间部分就是一张图片,最下面就是内容描述,最有意思的就是中间图片有一个小头像,这是我第一次学会使用小头像。
3.第三种
xwml代码展示
<!-- 滚动栏 -->
<swiper class='swiper' autoplay="true" circular="true" interval="3000" duration="1000" indicator-dots="true">
<block wx:for="{{swiperImage}}" wx:key="key">
<swiper-item>
<image src="{{item}}" mode='aspectFill' />
</swiper-item>
</block>
</swiper>
<!-- 商品导航栏 -->
<van-tabs active="{{ active }}" bind:change="onChange">
<!-- 滚动选项 -->
<van-tab title="手机电脑">
<!-- 滚动商品 -->
<block wx:for="{{goodslist1}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart1'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods1'>购买</button>
</view>
</view>
</block>
</van-tab>
<van-tab title="二手车">
<!-- 滚动商品 -->
<block wx:for="{{goodslist2}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart2'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods2'>购买</button>
</view>
</view>
</block>
</van-tab>
<van-tab title="家电产品">
<!-- 滚动商品 -->
<block wx:for="{{goodslist3}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart3'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods3'>购买</button>
</view>
</view>
</block>
</van-tab>
<van-tab title="体育用品">
<!-- 滚动商品 -->
<block wx:for="{{goodslist4}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart4'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods4'>购买</button>
</view>
</view>
</block>
</van-tab>
<van-tab title="读本读物">
<!-- 滚动商品 -->
<block wx:for="{{goodslist5}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart5'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods5'>购买</button>
</view>
</view>
</block>
</van-tab>
<van-tab title="数码产品">
<!-- 滚动商品 -->
<block wx:for="{{goodslist6}}" wx:key='key'>
<view class='card-main'>
<van-card tag="{{item.tag}}" price="{{item.price}}" desc="{{item.desc}}" title="{{item.title}}" thumb="{{item.imageUrl}}">
</van-card>
<view class='select-main'>
<button class='collection' id="{{item.id}}" bindtap='addcart6'>收藏</button>
<van-stepper value="{{ 1 }}" id="{{item.id}}" bind:change="onChange" />
<button class='buy' id="{{item.id}}" bindtap='buyGoods6'>购买</button>
</view>
</view>
</block>
</van-tab>
</van-tabs>
json代码
{
"navigationBarTitleText": "校园市场",
"usingComponents": {
"van-tab": "../../miniprogram_npm/miniprogram_npm/@vant/weapp/tab/index",
"van-tabs": "../../miniprogram_npm/miniprogram_npm/@vant/weapp/tabs/index",
"van-card": "../../miniprogram_npm/miniprogram_npm/@vant/weapp/card/index",
"van-button": "../../miniprogram_npm/miniprogram_npm/@vant/weapp/button/index",
"van-stepper": "../../miniprogram_npm/miniprogram_npm/@vant/weapp/stepper/index"
}
}
效果展示
这个页面其实盗用了第三方包,也就是vant样式,可以cmd到小程序项目里面用npm工具安装,具体教程我有一篇文章专门介绍的
4. 第四种
5. 第五种
6. 第六种
7. 第七种