• 微信小程序开发三:组件


    3.1视图容器

    视图分为三种:view普通视图容器、scroll-view滚动视图容器、swiper滑块视图容器。
    View容器的伸缩方向分为行和列。其相应的代码如下所示。

    <view class="section">
      <view class="section__title">flex-direction: row</view>
      <view class="flex-wrp" style="flex-direction:row;">
        <view class="flex-item bc_green">1</view>
        <view class="flex-item bc_red">2</view>
        <view class="flex-item bc_blue">3</view>
      </view>
    </view>
    <view class="section">
      <view class="section__title">flex-direction: column</view>
      <view class="flex-wrp" style="height: 300px;flex-direction:column;">
        <view class="flex-item bc_green">1</view>
        <view class="flex-item bc_red">2</view>
        <view class="flex-item bc_blue">3</view>
      </view>
    </view>
    
    

    scroll-view可滚动视图区域可配置的属性如表21-9所示。

    表21-9scroll-view可滚动视图区域属性说明
    scroll-view可滚动视图区域的示例代码如下所示。

    <view class="section">
      <view class="section__title">vertical scroll</view>
      <scroll-view scroll-y="true" style="height: 200px;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">
        <view id="green" class="scroll-view-item bc_green"></view>
        <view id="red"  class="scroll-view-item bc_red"></view>
        <view id="yellow" class="scroll-view-item bc_yellow"></view>
        <view id="blue" class="scroll-view-item bc_blue"></view>
      </scroll-view>
    
      <view class="btn-area">
        <button size="mini" bindtap="tap">click me to scroll into view </button>
        <button size="mini" bindtap="tapMove">click me to scroll</button>
      </view>
    </view>
    <view class="section section_gap">
      <view class="section__title">horizontal scroll</view>
      <scroll-view class="scroll-view_H" scroll-x="true" style=" 100%">
        <view id="green" class="scroll-view-item_H bc_green"></view>
        <view id="red"  class="scroll-view-item_H bc_red"></view>
        <view id="yellow" class="scroll-view-item_H bc_yellow"></view>
        <view id="blue" class="scroll-view-item_H bc_blue"></view>
      </scroll-view>
    </view>
    
    

    swiper滑块视图容器的属性如表21-10所示。

    表21-10swiper滑块视图容器属性说明
    swiper滑块视图容器示例代码如下所示。

    <swiper indicator-dots="{{indicatorDots}}"
      autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
      <block wx:for="{{imgUrls}}">
        <swiper-item>
          <image src="{{item}}" class="slide-image" width="355" height="150"/>
        </swiper-item>
      </block>
    </swiper>
    <button bindtap="changeIndicatorDots"> indicator-dots </button>
    <button bindtap="changeAutoplay"> autoplay </button>
    <slider bindchange="intervalChange" show-value min="500" max="2000"/> interval
    <slider bindchange="durationChange" show-value min="1000" max="10000"/> duration
    

     

    3.2基础内容

    icon图标的属性如表21-11所示。

    表21-11icon图标属性说明
    icon图标的示例代码如下所示。

    <view class="group">
      <block wx:for="{{iconSize}}">
        <icon type="success" size="{{item}}"/>
      </block>
    </view>
    
    <view class="group">
      <block wx:for="{{iconType}}">
        <icon type="{{item}}" size="45"/>
      </block>
    </view>
    
    
    <view class="group">
      <block wx:for="{{iconColor}}">
        <icon type="success" size="45" color="{{item}}"/>
      </block>
    </view>
    
    

    text文本示例代码如下所示。

    <view class="btn-area">
      <view class="body-view">
        <text>{{text}}</text>
        <button bindtap="add">add line</button>
        <button bindtap="remove">remove line</button>
      </view>
    </view>
    
    

    progress进度条的属性如表21-12所示。

    表21-12progress进度条属性说明
    progress进度条示例代码如下所示。

    <progress percent="20" show-info />
    <progress percent="40" stroke-width="12" />
    <progress percent="60" color="pink" />
    <progress percent="80" active />
    

    3.3表单组件

    button按钮的属性如表21-13所示。

    表21-13button按钮属性说明
    button按钮示例代码如下所示。

    <button type="default" size="{{defaultSize}}" loading="{{loading}}" plain="{{plain}}" disabled="{{disabled}}" bindtap="default" hover-class="other-button-hover"> default </button>
    <button type="primary" size="{{primarySize}}" loading="{{loading}}" plain="{{plain}}" disabled="{{disabled}}" bindtap="primary"> primary </button>
    <button type="warn" size="{{warnSize}}" loading="{{loading}}" plain="{{plain}}" disabled="{{disabled}}" bindtap="warn"> warn </button>
    <button bindtap="setDisabled">点击设置以上按钮disabled属性</button>
    <button bindtap="setPlain">点击设置以上按钮plain属性</button>
    <button bindtap="setLoading">点击设置以上按钮loading属性</button>
    
    

    checkbox-group多项选择器,内部由多个checkbox组成。checkbox多选项目属性如表21-14所示。

    表21-14 app成员函数属性说明
    checkbox多选项目示例代码如下所示。

    <checkbox-group bindchange="checkboxChange">
      <label class="checkbox" wx:for="{{items}}">
        <checkbox value="{{item.name}}" checked="{{item.checked}}"/>{{item.value}}
      </label>
    </checkbox-group>
    
    

    Form表单用于将组件内的用户输入的提交。当点击表单中 formType 为 submit 的

    <form bindsubmit="formSubmit" bindreset="formReset">
      <view class="section section_gap">
        <view class="section__title">switch</view>
        <switch name="switch"/>
      </view>
      <view class="section section_gap">
        <view class="section__title">slider</view>
        <slider name="slider" show-value ></slider>
      </view>
    
      <view class="section">
        <view class="section__title">input</view>
        <input name="input" placeholder="please input here" />
      </view>
      <view class="section section_gap">
        <view class="section__title">radio</view>
        <radio-group name="radio-group">
          <label><radio value="radio1"/>radio1</label>
          <label><radio value="radio2"/>radio2</label>
        </radio-group>
      </view>
      <view class="section section_gap">
        <view class="section__title">checkbox</view>
        <checkbox-group name="checkbox">
          <label><checkbox value="checkbox1"/>checkbox1</label>
          <label><checkbox value="checkbox2"/>checkbox2</label>
        </checkbox-group>
      </view>
      <view class="btn-area">
        <button formType="submit">Submit</button>
        <button formType="reset">Reset</button>
      </view>
    </form>
    
    

    input输入框的属性如表21-16所示。

    表21-16input输入框属性说明
    input输入框示例代码如下所示。

    <!--input.wxml-->
    <view class="section">
      <input placeholder="这是一个可以自动聚焦的input" auto-focus/>
    </view>
    <view class="section">
      <input placeholder="这个只有在按钮点击的时候才聚焦" focus="{{focus}}" />
      <view class="btn-area">
        <button bindtap="bindButtonTap">使得输入框获取焦点</button>
      </view>
    </view>
    <view class="section">
      <input  maxlength="10" placeholder="最大输入长度10" />
    </view>
    <view class="section">
      <view class="section__title">你输入的是:{{inputValue}}</view>
      <input  bindinput="bindKeyInput" placeholder="输入同步到view中"/>
    </view>
    <view class="section">
      <input  bindinput="bindReplaceInput" placeholder="连续的两个1会变成2" />
    </view>
    <view class="section">
      <input  bindinput="bindHideKeyboard" placeholder="输入123自动收起键盘" />
    </view>
    <view class="section">
      <input password type="number" />
    </view>
    <view class="section">
      <input password type="text" />
    </view>
    <view class="section">
      <input type="digit" placeholder="带小数点的数字键盘"/>
    </view>
    <view class="section">
      <input type="idcard" placeholder="身份证输入键盘" />
    </view>
    <view class="section">
      <input placeholder-style="color:red" placeholder="占位符字体是红色的" />
    </view>
    
    

    label用来改进表单组件的可用性,使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件。for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。
    label示例代码如下所示。

    <view class="section section_gap">
    <view class="section__title">表单组件在label内</view>
    <checkbox-group class="group" bindchange="checkboxChange">
      <view class="label-1" wx:for="{{checkboxItems}}">
        <label>
          <checkbox hidden value="{{item.name}}" checked="{{item.checked}}"></checkbox>
          <view class="label-1__icon">
            <view class="label-1__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>
          </view>
          <text class="label-1__text">{{item.value}}</text>
        </label>
      </view>
    </checkbox-group>
    </view>
    
    <view class="section section_gap">
    <view class="section__title">label用for标识表单组件</view>
    <radio-group class="group" bindchange="radioChange">
      <view class="label-2" wx:for="{{radioItems}}">
        <radio id="{{item.name}}" hidden value="{{item.name}}" checked="{{item.checked}}"></radio>
        <view class="label-2__icon">
          <view class="label-2__icon-checked" style="opacity:{{item.checked ? 1: 0}}"></view>
        </view>
        <label class="label-2__text" for="{{item.name}}"><text>{{item.name}}</text></label>
      </view>
    </radio-group>
    </view>
    
    

    picker滚动选择器支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。
    普通选择器(mode = selector)的属性如表21-17所示。

    表21-17普通选择器属性说明
    时间选择器(mode = time)的属性如表21-18所示。

    表21-18 时间选择器属性说明
    日期选择器(mode = date)的属性如表21-19所示。

    表21-19日期选择器属性说明
    picker滚动选择器示例代码如下所示。

    <view class="section">
      <view class="section__title">地区选择器</view>
      <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
        <view class="picker">
          当前选择:{{array[index]}}
        </view>
      </picker>
    </view>
    <view class="section">
      <view class="section__title">时间选择器</view>
      <picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange">
        <view class="picker">
          当前选择: {{time}}
        </view>
      </picker>
    </view>
    
    <view class="section">
      <view class="section__title">日期选择器</view>
      <picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange">
        <view class="picker">
          当前选择: {{date}}
        </view>
      </picker>
    </view>
    
    

    radio-group单项选择器,内部由多个组成。radio单选项目的属性如表21-20所示。

    表21-20radio单选项目属性说明
    radio单选项目示例代码如下所示。

    <radio-group class="radio-group" bindchange="radioChange">
      <label class="radio" wx:for="{{items}}">
        <radio value="{{item.name}}" checked="{{item.checked}}"/>{{item.value}}
      </label>
    </radio-group>
    
    

    slider滑动选择器属性如表21-21所示。

    表21-21slider滑动选择器属性说明
    slider滑动选择器示例代码如下所示。

    <view class="section section_gap">
      <text class="section__title">设置left/right icon</text>
      <view class="body-view">
        <slider bindchange="slider1change" left-icon="cancel" right-icon="success_no_circle"/>
      </view>
    </view>
    
    <view class="section section_gap">
      <text class="section__title">设置step</text>
      <view class="body-view">
        <slider bindchange="slider2change" step="5"/>
      </view>
    </view>
    
    <view class="section section_gap">
      <text class="section__title">显示当前value</text>
      <view class="body-view">
        <slider bindchange="slider3change" show-value/>
      </view>
    </view>
    
    <view class="section section_gap">
      <text class="section__title">设置最小/最大值</text>
      <view class="body-view">
        <slider bindchange="slider4change" min="50" max="200" show-value/>
      </view>
    </view>
    
    

    switch开关选择器的属性如表21-22所示。

    表21-22switch开关选择器属性说明
    switch开关选择器示例代码如下所示。

    <view class="body-view">
        <switch checked bindchange="switch1Change"/>
        <switch bindchange="switch2Change"/>
    </view>
    
    

    textarea多行输入框的属性如表21-23所示。

    表21-23textarea多行输入框属性说明
    textarea多行输入框示例代码如下所示。

    <!--textarea.wxml-->
    <view class="section">
      <textarea bindblur="bindTextAreaBlur" auto-height placeholder="自动变高" />
    </view>
    <view class="section">
      <textarea placeholder="placeholder颜色是红色的" placeholder-style="color:red;"  />
    </view>
    <view class="section">
      <textarea placeholder="这是一个可以自动聚焦的textarea" auto-focus />
    </view>
    <view class="section">
      <textarea placeholder="这个只有在按钮点击的时候才聚焦" focus="{{focus}}" />
      <view class="btn-area">
        <button bindtap="bindButtonTap">使得输入框获取焦点</button>
      </view>
    </view>
    

     

    3.4导航

    navigator页面链接的属性如表21-24所示。

    表21-24navigator页面链接属性说明
    navigator页面链接示例代码如下所示。

    <!-- sample.wxml -->
    <view class="btn-area">
      <navigator url="navigate?title=navigate" hover-class="navigator-hover">跳转到新页面</navigator>
      <navigator url="redirect?title=redirect" redirect hover-class="other-navigator-hover">在当前页打开</navigator>
    </view>
    

     

    3.5媒体组件

    audio音频的属性如表21-25所示。

    表21-25audio音频属性说明
    audio音频示例代码如下所示。

    <!-- audio.wxml -->
    <audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" id="myAudio" controls loop></audio>
    
    <button type="primary" bindtap="audioPlay">播放</button>
    <button type="primary" bindtap="audioPause">暂停</button>
    <button type="primary" bindtap="audio14">设置当前播放时间为14秒</button>
    <button type="primary" bindtap="audioStart">回到开头</button>
    
    

    image图片的属性如表21-26所示。

    表21-26image图片属性说明
    image图片示例代码如下所示。

    <view class="page">
      <view class="page__hd">
        <text class="page__title">image</text>
        <text class="page__desc">图片</text>
      </view>
      <view class="page__bd">
        <view class="section section_gap" wx:for="{{array}}" wx:for-item="item">
          <view class="section__title">{{item.text}}</view>
          <view class="section__ctn">
            <image style=" 200px; height: 200px; " mode="{{item.mode}}" src="{{src}}"></image>
          </view>
        </view>
      </view>
    </view>
    
    

    video视频标签默认宽度为300px,高度为225px,设置宽高需要通过wxss设置width和height。video视频的属性如表21-27所示。

    表21-27video视频属性说明
    video视频示例代码如下所示。

    <view class="section tc">
      <video src="{{src}}"   controls ></video>
      <view class="btn-area">
        <button bindtap="bindButtonTap">获取视频</button>
      </view>
    </view>
    
    <view class="section tc">
      <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400" binderror="videoErrorCallback" danmu-list="{{danmuList}}" enable-danmu danmu-btn controls></video>
      <view class="btn-area">
        <button bindtap="bindButtonTap">获取视频</button>
        <input bindblur="bindInputBlur"/>
        <button bindtap="bindSendDanmu">发送弹幕</button>
      </view>
    </view>
    

     

    3.6地图

    map地图的属性如表21-28所示。

    表21-28 map地图属性说明
    标记点用于在地图上显示标记的位置,不能自定义图标和样式。标记点的属性如表21-29所示。

    表21-29标记点属性说明
    覆盖物用于在地图上显示自定义图标,可自定义图标和样式。覆盖物的属性如表21-30所示。

    表21-30覆盖物属性说明
    map地图示例代码如下所示。

    <!-- map.wxml -->
    <map longitude="113.324520" latitude="23.099994" markers="{{markers}}" covers="{{covers}}" style=" 375px; height: 200px;"></map>
    

     

    3.7画布

    canvas画布的属性如表21-31所示。

    表21-31canvas画布属性说明
    canvas画布的示例代码如下所示。

    <!-- canvas.wxml -->
    <canvas style=" 300px; height: 200px;" canvas-id="firstCanvas"></canvas>
    <!-- 当使用绝对定位时,文档流后边的 canvas 的显示层级高于前边的 canvas -->
    <canvas style=" 400px; height: 500px;" canvas-id="secondCanvas"></canvas>
    <!-- 因为 canvas-id 与前一个 canvas 重复,该 canvas 不会显示,并会发送一个错误事件到 AppService -->
    <canvas style=" 400px; height: 500px;" canvas-id="secondCanvas" binderror="canvasIdErrorCallback"></canvas>
    

     

  • 相关阅读:
    007_排序_多重排序
    Locust 运行模式
    Locust介绍
    Locust环境搭建及报错解决
    8-02全局变量与输出语句
    8-01变量
    7-15ALL、 ANY、SOME子查询
    7-14 EXISTS子查询
    7-13IN和NOT IN 子查询
    7-12简单子查询
  • 原文地址:https://www.cnblogs.com/zhijiangch/p/7806126.html
Copyright © 2020-2023  润新知