轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序三个视图控件View、ScrollView、Swiper的解读及示例

发布者: skwxh | 发布时间: 2018-6-15 09:58| 查看数: 4789| 评论数: 1|帖子模式

 
关于微信小程序的视图控件,今天带给大家系统的解读和示范,相信看完后都可以轻松用好了。

首先看一下这个示例程序的运行效果。 

大家可以看到,有三个视图,分别用不同的配置和使用方式。 
接下来我们具体展开来介绍。

我们先新建一个项目,在首页添加三个navigator导航按钮,分别跳转到对应的组件示范页面。 

index页面的WXML代码如下:

  1. <!--index.wxml-->
  2. <view class="usermotto">
  3. <text class="user-motto">{{motto}}</text>
  4. </view>
  5. <view class="viewName">
  6. <navigator url="Component/View/View">
  7. <text class="view-Name">View组件示范</text>
  8. </navigator>
  9. </view>
  10. <view class="viewName">
  11. <navigator url="Component/ScrollView/ScrollView">
  12. <text class="view-Name">Scroll-View组件示范</text>
  13. </navigator>
  14. </view>
  15. <view class="viewName">
  16. <navigator url="Component/Swiper/Swiper">
  17. <text class="view-Name">Swiper组件示范</text>
  18. </navigator>
  19. </view>
  20. <view class="usermotto">
  21. <text class="project-info">{{info}}</text>
  22. </view>

index页面的JS代码如下:

  1. //index.js
  2. //获取应用实例
  3. var app = getApp()
  4. Page({
  5. data: {
  6. motto: '基础视图View,滑动视图ScrollView,滑块Swiper',
  7. info: '更多教程和源码请关注51小程序:,
  8. userInfo: {}
  9. },
  10. onLoad: function () {
  11. console.log('onLoad')
  12. var that = this
  13. //调用应用实例的方法获取全局数据
  14. app.getUserInfo(function(userInfo){
  15. //更新数据
  16. that.setData({
  17. userInfo:userInfo
  18. })
  19. })
  20. }
  21. })

index页面的WXSS样式代码如下:

  1. /**index.wxss**/
  2. .usermotto {
  3. margin-top: 30px;
  4. font-size: 20px;
  5. }
  6. .viewName{
  7. margin-top: 30px;
  8. margin-left: 40px;
  9. margin-right: 40px;
  10. height: 50px;
  11. font-size: 25px;
  12. background-color: #AED2EE;
  13. /**下面是设置三个view视图的文本内容上下左右居中**/
  14. justify-content: center;
  15. display: flex;
  16. align-items: center;
  17. }

另外我们要提醒一下,因为每个页面都会用到一些相同的样式,这样的情况下,可以把这些样式提取出来放在app.wxss文件中,作为公共样式。 
本示例Demo中的公共样式如下,写在app.wxss中。 
第一、基础视图View组件页面,页面截图如下: 

View页面的WXML代码如下:

  1. <!--View.wxml-->
  2. <view class="viewTitle">
  3. <text>View展示</text>
  4. </view>
  5. <!--样式一,横向排列-->
  6. <view class="section">
  7. <view class="section__title">样式一,横向排列</view>
  8. <view class="flex-wrp">
  9. <view class="flex-item bc_green">111</view>
  10. <view class="flex-item bc_red">222</view>
  11. <view class="flex-item bc_blue">333</view>
  12. </view>
  13. </view>
  14. <!--样式二,竖向排列。下面的style="height:300px"样式,也可以在 .wxml的文件中进行样式设计-->
  15. <view class="section">
  16. <view class="section__title">样式二,竖向排列</view>
  17. <view class="flex-wrp" style="height:300px">
  18. <!--下面的view有2个class 一个是来之View.wxss文件定义的样式,一个是总的样式文件app.wxss定义的样式-->
  19. <view class="flex-item bc_green" style="margin-top: 0px">111</view>
  20. <view class="flex-item bc_red" style="margin-top: 100px">222</view>
  21. <view class="flex-item bc_blue" style="margin-top: 200px">333</view>
  22. </view>
  23. </view>

View页面的WXSS代码如下:

  1. /**View.wxss**/
  2. .flex-wrp{
  3. height: 100px;
  4. display: flex;
  5. background-color: #ffffff;
  6. }
  7. /**
  8. 这里定义了一个样式,另外在总的小程序app.wxss中也可以定义通用的样式,可以应用到每个页面中。
  9. **/
  10. .flex-item{
  11. width: 100px;
  12. height: 100px;
  13. color: #ffffff;
  14. display: flex;
  15. justify-content: center;
  16. align-items: center;
  17. }

因为这里是演示View组件,所有没有JS代码。效果,可以查看最顶部的动画效果图。

第二、滑动视图组件页面的截图如下: 

ScrollView页面的WXML代码如下:

  1. <!--ScrollView.wxml-->
  2. <view class="viewTitle">
  3. <text class="titleName">ScrollView视图展示</text>
  4. </view>
  5. <!--样式一,竖向滑动-->
  6. <view class="section">
  7. <view class="section__title">样式一,竖向滑动Vertical</view>
  8. <view class="flex-wrp">
  9. <!--bindscrolltoupper后面的参数可以不写,在.js文件中
  10. 有对应的交互方法-->
  11. <scroll-view scroll-y="true" style="height: 200px;"
  12. bindscrolltoupper="upper" bindscrolltolower="lower"
  13. bindscroll="scroll" scroll-into-view="{{toView}}"
  14. scroll-top="{{scrollTop}}">
  15. <!--这里的id用来js中找到对应的显示视图,如果不进行js中data的{{toView}}
  16. 的数据交互,显示的是蓝黄红绿,如果进行js数据交互,那么初始化时显示的是
  17. 最下面的绿-->
  18. <view id="blue" class="scroll-view-item bc_blue"></view>
  19. <view id="yellow" class="scroll-view-item bc_yellow"></view>
  20. <view id="red" class="scroll-view-item bc_red"></view>
  21. <view id="green" class="scroll-view-item bc_green"></view>
  22. </scroll-view>
  23. </view>
  24. </view>
  25. <!--样式二,横向滑动-->
  26. <view class="section">
  27. <view class="section__title">样式二,横向滑动Horizontal</view>
  28. <view class="flex-wrp">
  29. <scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%">
  30. <view id="green" class="scroll-view-item_H bc_green"></view>
  31. <view id="red" class="scroll-view-item_H bc_red"></view>
  32. <view id="yellow" class="scroll-view-item_H bc_yellow"></view>
  33. <view id="blue" class="scroll-view-item_H bc_blue"></view>
  34. </scroll-view>
  35. </view>
  36. </view>

ScrollView页面的JS代码如下:

  1. //ScrollView.js
  2. var order = ['green', 'red', 'yellow', 'blue', 'green']
  3. Page({
  4. })

ScrollView页面的WXSS代码如下:

  1. /**ScrollView.wxss**/
  2. .scroll-view_H{
  3. white-space: nowrap;
  4. }
  5. .scroll-view-item{
  6. height: 200px;
  7. }
  8. .scroll-view-item_H{
  9. display: inline-block;
  10. width: 100%;
  11. height: 200px;
  12. }
  13. .flex-wrp{
  14. height: 200px;
  15. display: flex;
  16. background-color: #ffffff;
  17. }

此页面的效果,可以查看最顶部的动画效果图。 
第三、Swiper视图组件页面的截图如下: 

 
这样页面相对比较复杂,可以看到一个滑块视图,3个按钮控制不同的显示状态,另外2个滑动条,控制滑块视图切换时的快慢。 
具体如下代码和解读:

Swiper页面的WXML代码如下:

  1. <!--Swiper.wxml-->
  2. <view class="viewTitle">
  3. <text class="titleName">Swiper视图展示</text>
  4. </view>
  5. <view class="page__bd">
  6. <view class="section section_gap swiper">
  7. <swiper indicator-dots="{{indicatorDots}}" vertical="{{vertical}}"
  8. autoplay="{{autoplay}}" interval="{{interval}}"
  9. duration="{{duration}}">
  10. <block wx:for="{{background}}">
  11. <swiper-item>
  12. <view class="swiper-item bc_{{item}}"></view>
  13. </swiper-item>
  14. </block>
  15. </swiper>
  16. </view>
  17. <view class="btn-area">
  18. <button type="default" bindtap="changeIndicatorDots">
  19. 显示/取消指示点</button>
  20. <button type="default" bindtap="changeVertical">
  21. {{vertical?'横显示':'竖显示'}}</button>
  22. <button type="default" bindtap="changeAutoplay">
  23. 开始/停止轮播</button>
  24. </view>
  25. <slider bindchange="durationChange" value="{{duration}}"
  26. show-value min="200" max="2000"/>
  27. <view class="section__title">轮播一次的时间duration</view>
  28. <slider bindchange="intervalChange" value="{{interval}}"
  29. show-value min="1000" max="10000"/>
  30. <view class="section__title">间隔多长时间显示下一个图interval</view>
  31. </view>

Swiper页面的JS代码如下:

  1. //Swiper.js
  2. Page({
  3. data: {
  4. background: ['green', 'red', 'yellow'],
  5. indicatorDots: true, //布尔值变量,用于控制显示/取消指示点
  6. vertical: false, //根据这个布尔值的真假,控制滑块视图,横显示或者竖显示
  7. autoplay: false, //通过这个开关控制,是否开始轮播,或者停止轮播
  8. interval: 3000, //设置间隔多长时间显示下一个图
  9. duration: 1200 //设置轮播一次的时间
  10. },
  11. changeIndicatorDots: function (e) {
  12. this.setData({
  13. indicatorDots: !this.data.indicatorDots
  14. })
  15. },
  16. changeVertical: function (e) {
  17. this.setData({
  18. vertical: !this.data.vertical
  19. })
  20. },
  21. changeAutoplay: function (e) {
  22. this.setData({
  23. autoplay: !this.data.autoplay
  24. })
  25. },
  26. intervalChange: function (e) {
  27. this.setData({
  28. interval: e.detail.value
  29. })
  30. },
  31. durationChange: function (e) {
  32. this.setData({
  33. duration: e.detail.value
  34. })
  35. }
  36. })

Swiper页面的WXSS代码如下:

  1. /**Swiper.wxss**/
  2. .swiper-item{
  3. display: block;
  4. height: 150px;
  5. }

基本整个项目代码都在这里了。大家可以看一下。

最新评论

xianying1996 发表于 2022-6-26 17:01
代码免费复制大全

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表