一 概述

  • 常用组件介绍
  • 内容区域滚动
  • 轮播图
  • 功能按钮
  • 热门音乐

二 常用组件介绍

2.1 scroll-view 组件

组件介绍
  • scroll-view组件用于实现可滚动视图区域
  • 一般来说,当页面的高度超过要显示区域的高度时,先设置外层容器的高度,使之低于内部的高度,然后在外层容器的样式中设置overflow-y:scroll,就可以实现上下滚动了
  • 但是,这种方式只是从样式上实现了滚动,如果需要在滚动到顶部或底部时触发事件,就需要手动编写代码来实现了
常用属性
属性类型说明
scroll-xBoolean允许横向滑动,默认为false
scroll-yBoolean允许纵向滚动,默认为false
scroll-topNumber/String设置竖向滚动条的位置
scroll-leftNumber/String设置横向滚动条的位置
bindscrolltoupperEventHandle滚动到顶部/左边时触发的事件
bindscrolllowerEventHandle滚动到底部/右边时触发的事件
scroll-with-animationBoolean在设置滚动条位置时是否使用动画过渡
scroll-into-viewString设置哪个方向可滚动,则在哪个方向滚动到该元素。值应为某个子元素id(id不能以数字开头)
bindscrollEventHandle滚动时触发的事件

2.2 image组件

组件介绍

微信小程序中提供了image组件来定义图片,类似于HTML中的<img>标签。image组件除了用来显示图片,还支持对图片进行裁剪或缩放,提供了4中缩放模式和9中裁剪模式

image属性
属性类型说明
srcString图片资源地址
modeString图片裁剪、缩放的模式,默认为scaleToFill
lazy-loadBoolean图片是否懒加载,默认为false。只针对page与scroll-view下的image有效
binderrorHandleEvent图片发生错误时的事件
bindloadHandleEvent图片载入完成时的事件
4种缩放模式
缩放模式说明
scaleToFill不保持横纵比缩放图片,使图片的宽高完全拉伸至填满image元素。适用于容器与图片宽高比相同的情况,如果不同,图片会变形
aspectFit保持横纵比缩放图片,使图片的长边能完全显示出来。适用于将图片完整显示出来。例如,详情页的图片
aspectFill保持横纵比缩放图片,只保证图片的短边能完全显示出来,长边将会发生截取。适用于容器固定,图片自动缩放的情况,如列表页的缩略图
widthFix宽度不变,高度自动变化,保持原图宽高比不变
9种裁剪模式
裁剪模式说明
top不缩放图片,只显示图片的顶部区域
bottom不缩放图片,只显示图片的底部区域
center不缩放图片,只显示图片的中间区域
left不缩放图片,只显示图片的左边区域
right不缩放图片,只显示图片的右边区域
top left不缩放图片,只显示图片的左上区域
top right不缩放图片,只显示图片的右上区域
bottom left不缩放图片,只显示图片的左下区域
bottom right不缩放图片,只显示图片的右下区域

三 内容区域滚动

修改说明

先编写外层的容器,由于这个页面的高度不固定,内容将来可能会增加或减少,因此使用scroll-view组件作为外层容器,当内容高度超过content区域的显示范围后,可以上下滚动

pages/index/info.wxml
<scroll-view class="content-info" scroll-y>
  <view style="background:#eee;height:1000px"></view>
  <view>已经达到底部</view>
</scroll-view>
pages/index/index.wxss
.content-info{
  height: 100%;
}
::-webkit-scrollbar{
  width: 0;
  height: 0;
  color: transparent;
}

四 轮播图

pages/index/info.wxml(先删除测试view)
<swiper class="content-info-slide" indicator-color="rgba(255,255,255,.5)" indicator-active-color="#fff" indicator-dots circular autoplay>
    <swiper-item>
      <image src="../images/fj.jpg" />
    </swiper-item>
    <swiper-item>
      <image src="../images/fj.jpg" />
    </swiper-item>
    <swiper-item>
      <image src="../images/fj.jpg" />
    </swiper-item>
</swiper>
pages/index/indx.wxss
.content-info-slide{
  height: 302rpx;
  margin-bottom: 20px;
}
.content-info-slide image{
  width: 100%;
  height: 100%;
}

五 功能按钮

布局文件pages/index/info.wxml(轮播图下方)
<!--功能按钮-->
<view class="content-info-portal">
<view>
  <image src="../images/run.png" />
  <text>私人FM</text>
</view>
<view>
  <image src="../images/number.png" />
  <text>每日歌曲推荐</text>
</view>
<view>
  <image src="../images/rank.png" />
  <text>云音乐新歌榜</text>
</view>
</view>
配置文件pages/index/indx.wxss
.content-info-portal{
  display: flex;
  margin-bottom: 15px;
}
.content-info-portal >view{
  flex: 1;
  font-size: 11pt;
  text-align: center;
}
.content-info-portal image{
  width: 120rpx;
  height: 120rpx;
  display: block;
  margin: 20rpx auto;
}

六 热门音乐

布局文件 pages/index/info.wxml(功能按钮下方)
<view class="content-info-list">
  <view class="list-title">推荐歌曲</view>
  <view class="list-inner">
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>紫罗兰</view>
    </view>
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>五月之歌</view>
    </view>
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>菩提树</view>
    </view>
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>欢乐颂</view>
    </view>
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>安魂曲</view>
    </view>
    <view class="list-item"> 
        <image src="../images/music.png" />
        <view>摇篮曲</view>
    </view>
  </view>
</view>
配置文件pages/index/indx.wxss
.content-info-list{
  font-size: 11pt;
  margin-bottom: 20rpx;
}
.content-info-list>.list-title{
  margin:20rpx 35rpx;
}
.content-info-list >.list-inner{
  display: flex;
  flex-wrap: wrap;
  margin: 0 20rpx;
}
.content-info-list>.list-inner>.list-item{
  flex:1;
}
.content-info-list>.list-inner>.list-item>image{
  display:block;
  width: 200rpx;
  height: 200rpx;
  margin:0 auto;
  border-radius: 10rpx;
  border:1rpx solid #555;
  margin: 10rpx auto;
  font-size:10pt;
}

七 效果图

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐