微信小程序学习之路(二) ------ 组件

从零学习微信小程序(二)—— 常用组件 从零学习微信小程序(二)—— 常用组件 这一篇记录以下,小程序中常用的组件,刚开始学容易忘 官方详细文档 官方文档很多很详细,这里记的是视频里涉及的 1. view 类似于原来的div标签 特殊属性,看起来属性都与点击有关 2. text ⽂本标签 只能嵌套 text ⻓按⽂字可以复制(只有该标签有这个功能) 可以对空格 、回⻋等 进⾏编码 3. image 图片标签 默认宽高 320 * 240 px 支持懒加载 对于图片缩放有多种处理方式,有点多,记不住 由于 阅读详情

组件

视图容器

  1. view

    • hover-class , 指定按下去的样式类,不指定hover-class没有点击特效
    • hover-start-time, 按住后多久出现点击态(默认50ms)
    • hovar-stay-time, 松开后点击态保留多久(默认400ms)
        // logs.wxml
        <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" hover-class="bc_yellow">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" hover-class="bc_orange">1</view>
            <view class="flex-item bc_red">2</view>
            <view class="flex-item bc_blue">3</view>
        </view>
        </view>
    
        // logs.wxss
        .flex-wrp{
            display: flex;
        }
        .flex-item{
            flex: 1;
            width: 100rpx;
            height: 100rpx;
        }
        .bc_green{
            background-color: green;
        }
        .bc_red{
            background-color: red;
        }
        .bc_blue{
            background-color: blue;
        }
        .bc_orange{
            background-color: orange;
        }
        .bc_yellow{
            background-color: yellow;
        }
    
        // 如果需要滚动视图。需要使用 scroll-view
  2. scroll-view: 滚动视图
    • scroll-x — 允许横向滚动(默认false)
    • scroll-y — 允许纵向滚动(默认false)
    • upper-threshold(number) — 距顶部/左边多远时(单位px),触发 scrolltoupper 事件
    • lower-threshold(number) — 距底部/右边多远时(单位px),触发 scrolltolower 事件
    • scroll-top(number) — 设置竖向滚动条位置
    • scroll-left(number) — 设置横向滚动条位置
    • scroll-into-view(目标元素的id) — 滚动到目标元素
    • scroll-with-animation(false) — 设置滚动条位置时使用动画过度
    • enable-back-to-top(false) — ios点击顶部,安卓双击顶部标题返回顶部
    • bindscrolltoupper(event) — 滚动到左边/顶部会触发 scrolltoupper 事件
    • bindscrolltolower(event) — 滚动到左边/顶部会触发 scrolltolower 事件
    • bindscroll(event) — 滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

      使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。
      注意:

      1. 请勿在 scroll-view 中使用 textarea、map、canvas、video 组件
      2. scroll-into-view 的优先级高于 scroll-top
      3. 在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh
      4. 若要使用下拉刷新,请使用页面的滚动,而不是 scroll-view ,这样也能通过点击顶部状态栏回到页面顶部

  3. swiper: 滑块视图容器,swiper中只可放置swiper-item组件,swiper-item只可放置在swiper中

    • indicator-dots(false) — 是否显示面板指示点
    • indicator-color(rgba(0,0,0,.3)) — 面板指示点颜色
    • indicator-active-color(#000000) — 当前选中的指示点颜色
    • autoplay(false) — 是否自动切换
    • current(0) — 当前所在页面的index
    • interval(5000) — 自动切换间隔
    • duration(500) — 滑动动画时长
    • circular(false) — 是否采用衔接滑动
    • bindchange(event) — current 改变时会触发 change 事件,event.detail = {current: current}
        // item.wxml
        <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
    
        // item.js
        Page({
            data: {
                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: false,
                autoplay: false,
                interval: 500,
                duration: 100
            },
            changeIndicatorDots: function (e) {
                this.setData({
                    indicatorDots: !this.data.indicatorDots
                })
            },
            changeAutoplay: function (e) {
                this.setData({
                    autoplay: !this.data.autoplay
                })
            },
            intervalChange: function (e) {
                this.setData({
                    interval: e.detail.value
                })
            },
            durationChange: function (e) {
                this.setData({
                    duration: e.detail.value
                })
            }
        })
  4. movable-area: movable-view 的可移动区域

    • 注意:movable-area 必须设置width和height属性,不设置默认为10px
    • movable-view: 可移动的视图容器,在页面中可以拖拽滑动
    • direction(none) — movable-view的移动方向,属性值有all、vertical、horizontal、none
    • inertia(false) — movable-view 是否带有惯性
    • out-of-bounds(false) — 超过可移动区域后,movable-view是否还可以移动
    • x(number) — 定义x轴方向的偏移,如果x的值不在可移动范围内,会自动移动到可移动范围;改变x的值会触发动画
    • y(number) — 定义y轴方向的偏移,如果y的值不在可移动范围内,会自动移动到可移动范围;改变y的值会触发动画
    • damping(20) — 阻尼系数,用于控制x或y改变时的动画和过界回弹的动画,值越大移动越快
    • friction(2) — 摩擦系数,用于控制惯性滑动的动画,值越大摩擦力越大,滑动越快停止;必须大于0,否则会被设置成默认值
    • 注意:movable-view必须在组件中,并且必须是直接子节点,否则不能移动。
    • 示例:
        // item.wxml
        <view class="section">
            <view class="section__title">movable-view区域小于movable-area</view>
            <movable-area style="height: 200px;width: 200px;background: red;">
                <movable-view style="height: 50px; width: 50px; background: blue;" x="{{x}}" y="{{y}}"></movable-view>
            </movable-area>
            <view class="btn-area">
                <button size="mini" bindtap="tap">click me to move to (30px, 30px)</button>
            </view>
            <view class="section__title">movable-view区域大于movable-area</view>
            <movable-area style="height: 100px;width: 100px;background: red;">
                <movable-view style="height: 200px; width: 200px; background: blue;"></movable-view>
            </movable-area>
        </view>
    
        // item.js
        Page({
            data: {
                x: 0,
                y: 0
            },
            tap: function (e) {
                this.setData({
                x: 30,
                y: 30
                });
            }
        })

基础内容

  1. icon: 图标

    • type(string) — icon的类型,有效值:success, success_no_circle, info, warn, waiting, cancel, download, search, clear
    • size(23) — icon的大小,单位: px
    • color(color) — icon 的颜色,同css的color
        // item.wxml
        <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="40"/>
            </block>
        </view>
    
    
        <view class="group">
            <block wx:for="{{iconColor}}">
                <icon type="success" size="40" color="{{item}}"/>
            </block>
        </view>
    
        // item.js  
        Page({
            data: {
                iconSize: [20, 30, 40, 50, 60, 70],
                iconColor: [
                'red', 'orange', 'yellow', 'green', 'rgb(0,255,255)', 'blue', 'purple'
                ],
                iconType: [
                'success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel', 'download', 'search', 'clear'
                ]
            }
        })
  2. text: 文本
    • selectable(false) — 文本是否可选
    • 组件内只支持 嵌套。
    • 支持转义字符 “\” , 除了文本节点以外的其他节点都无法长按选中。
  3. progress: 进度条

    • percent(float) — 百分比0-100
    • show-info(false) — 在进度条右侧显示百分比
    • stroke-width(6) — 进度条线宽
    • color(#09BB07) — 进度条颜色
    • activeColor(color) — 已选择的进度条颜色
    • backgroundColor(color) — 未选择的进度条颜色
    • active(false) — 进度条从左往右的动画
        <progress percent="20" show-info />
        <progress percent="40" stroke-width="12" />
        <progress percent="60" color="pink" />
        <progress percent="80" active />

表单组件

  1. buton

    • size(default) — 按钮的大小(mini、default)
    • type(default) — 按钮的样式类型(primary、warn、default)
    • plain(false) — 按钮是否镂空,背景色透明
    • disabled(false) — 按钮是否禁用
    • loading(false) — 名称前是否带loading图标
    • form-type(string) — 用于 组件,点击分别会触发 submit/reset 事件(取值为submit、reset)
    • open-type(string) — 微信开放能力(取值为contact(客服)、share(触发用户转发))
    • hover-class(button-hover) — 当hover-class=”none”时没有点击效果注:button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
    • hover-start-time(20) — 按住后多久出现点击态,单位毫秒
    • hover-stay-time(70) — 手指松开后点击态保留时间,单位毫秒
        // item.wxml
        <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>
        <button open-type="contact">进入客服会话</button>
    
        // item.wxss 
        /** 修改button默认的点击态样式类**/
        .button-hover {
        background-color: red;
        }
        /** 添加自定义button点击态样式类**/
        .other-button-hover {
        background-color: blue;
        }
    
        // item.js  
        var types = ['default', 'primary', 'warn']
        var pageObject = {
            data: {
                defaultSize: 'default',
                primarySize: 'default',
                warnSize: 'default',
                disabled: false,
                plain: false,
                loading: false
            },
            setDisabled: function (e) {
                this.setData({
                disabled: !this.data.disabled
                })
            },
            setPlain: function (e) {
                this.setData({
                plain: !this.data.plain
                })
            },
            setLoading: function (e) {
                this.setData({
                loading: !this.data.loading
                })
            }
        }
    
        for (var i = 0; i < types.length; ++i) {
            (function (type) {
                pageObject[type] = function (e) {
                var key = type + 'Size'
                var changedData = {}
                changedData[key] =
                    this.data[key] === 'default' ? 'mini' : 'default'
                this.setData(changedData)
                }
            })(types[i])
        }
    
        Page(pageObject)
  2. checkbox
    • checkbox-group: 多项选择器,内部由多个checkbox组成。包含属性:bindchange(event) — 中选中项发生改变是触发 change 事件,detail = {value:[选中的checkbox的value的数组]}
    • value(string) — 标识,选中时触发的 change 事件,并携带 的 value
    • disabled(false) — 是否禁用
    • checked(false) — 设置默认是否选中
    • color(color) — checkbox的颜色,同css3
  3. form

    • 将组件内的用户输入的 提交。
    • 当点击 表单中 formType 为 submit 的 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。
    • report-submit(boolean) — 是否返回formID用于发送模板消息(详见模板消息API)
    • bindsubmit(event) — 携带 form 中的数据触发 submit 事件,event.detail = {value : {‘name’: ‘value’} , formId: ”}
    • bindreset(event) — 表单重置时会触发 reset 事件
        // item.wxml
        <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>
    
        // item.js
        Page({
            formSubmit: function (e) {
                console.log('form发生了submit事件,携带数据为:', e.detail.value)
            },
            formReset: function () {
                console.log('form发生了reset事件')
            }
        })
  4. input
    • value
    • type — 可选(‘text’、’number’、’idvard’:身份证输入键盘、’dight’:带小数点的数字键盘)
    • password(false) — 是否是密码类型
    • placehoider
    • placeholder-style(string) — 指定 placeholder 的样式
    • placeholder-class(“input-placeholder” ) — 指定 placeholder 的样式类
    • disabled
    • maxlength(140) — 最大输入长度,设置为 -1 的时候不限制最大长度
    • cursor-spacing(0) — 指定光标与键盘的距离,单位 px 。取 input 距离底部的距离和 cursor-spacing 指定的距离的最小值作为光标与键盘的距离
    • focus(false) — 自动聚焦,获取焦点
    • confirm-type(‘done’) — 设置键盘右下角按钮的文字(‘send’、’sreach’、’next’、’go’:前往、’done’)
    • confirm-hold(false) — 单击键盘右下按钮时,是否保持键盘不收起
    • bindinput(event) — 当键盘输入时,触发input事件,event.detail = {value: value},处理函数可以直接 return 一个字符串,将替换输入框的内容。
    • bindfocus(event) — 输入框聚焦时触发,event.detail = {value: value}
    • bindblur(event) — 输入框失去焦点时触发,event.detail = {value: value}
    • bindconfirm(event) — 点击完成按钮时触发,event.detail = {value: value}
  5. label
    • 用来改进表单组件的可用性,使用for属性找到对应的id,或者将控件放在该标签下,当点击时,就会触发对应的控件。for优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。
    • 目前可以绑定的控件有:, , , 。
    • for属性绑定控件id
  6. picker:从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。

    • 普通选择器:mode = selector
    • range([]) — mode为 selector 时,range 有效,值为Array / Object Array
    • range-key(string) — 当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容
    • value(0) — number型 — value 的值表示表示选择了 range 中的第几个(下标从 0 开始)。
    • bindchange(event) — value 改变时触发 change 事件,event.detail = {value: value}
    • disabled
    • 时间选择器:mode = time
    • value(string) — 选中的时间,格式为:”hh:mm”
    • start(string) — 表示有效时间范围的开始,字符串格式为”hh:mm”
    • end(string) — 表示有效时间范围的结束,字符串格式为”hh:mm”
    • bindchange(event) — value 改变时触发 change 事件,event.detail = {value: value}
    • disabled
    • 日期选择器:mode = date
    • value(0) — 表示选中的日期,格式为”YYYY-MM-DD”
    • start(string) — 表示有效日期范围的开始,字符串格式为”YYYY-MM-DD”
    • end(string) — 表示有效日期范围的结束,字符串格式为”YYYY-MM-DD”
    • fields(day) — 有效值 year,month,day,表示选择器的粒度
    • bindchange(event) — value 改变时触发 change 事件,event.detail = {value: value}
    • disabled
        // item.wxml
        <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>
    
        // item.js  
        Page({
            data: {
                array: ['美国', '中国', '巴西', '日本'],
                objectArray: [
                {
                    id: 0,
                    name: '美国'
                },
                {
                    id: 1,
                    name: '中国'
                },
                {
                    id: 2,
                    name: '巴西'
                },
                {
                    id: 3,
                    name: '日本'
                }
                ],
                index: 0,
                date: '2016-09-01',
                time: '12:01'
            },
            bindPickerChange: function(e) {
                console.log('picker发送选择改变,携带值为', e.detail.value)
                this.setData({
                index: e.detail.value
                })
            },
            bindDateChange: function(e) {
                this.setData({
                date: e.detail.value
                })
            },
            bindTimeChange: function(e) {
                this.setData({
                time: e.detail.value
                })
            }
        })
  7. picker-view: 嵌入页面的滚动选择器

    • value(numberArray) — 数组中的数字依次表示 picker-view 内的 picker-view-colume 选择的第几项(下标从 0 开始),数字大于 picker-view-column 可选项长度时,选择最后一项。
    • indicator-style(string) — 设置选择器中间选中框的样式
    • indicator-class(string) — 设置选择器中间选中框的类名
    • bindchange(event) — 当滚动选择,value 改变时触发 change 事件,event.detail = {value: value};value为数组,表示 picker-view 内的 picker-view-column 当前选择的是第几项(下标从 0 开始)
    • 注意:其中只可放置组件,其他节点不会显示。 picker-view-column组件仅可放置于中,其孩子节点的高度会自动设置成与picker-view的选中框的高度一致
        // item.wxml   
        <view>
            <view>{{year}}年{{month}}月{{day}}日</view>
            <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
                <picker-view-column>
                    <view wx:for="{{years}}" style="line-height: 50px">{{item}}年</view>
                </picker-view-column>
                <picker-view-column>
                    <view wx:for="{{months}}" style="line-height: 50px">{{item}}月</view>
                </picker-view-column>
                <picker-view-column>
                    <view wx:for="{{days}}" style="line-height: 50px">{{item}}日</view>
                </picker-view-column>
            </picker-view>
        </view>
    
        // item.js  
        const date = new Date()
            const years = []
            const months = []
            const days = []
    
            for (let i = 1990; i <= date.getFullYear(); i++) {
            years.push(i)
            }
    
            for (let i = 1 ; i <= 12; i++) {
            months.push(i)
            }
    
            for (let i = 1 ; i <= 31; i++) {
            days.push(i)
            }
    
            Page({
            data: {
                years: years,
                year: date.getFullYear(),
                months: months,
                month: 2,
                days: days,
                day: 2,
                year: date.getFullYear(),
                value: [9999, 1, 1],
            },
            bindChange: function(e) {
                const val = e.detail.value
                this.setData({
                year: this.data.years[val[0]],
                month: this.data.months[val[1]],
                day: this.data.days[val[2]]
                })
            }
        })
  8. radio: radio-group单项选择器,内部由多个组成。

    • bindchange(event) — 中的选中项发生变化时触发 change 事件,event.detail = {value: 选中项radio的value}
    • value(string) — 标识。当该 选中时, 的 change 事件会携带的value
    • checked(false)
    • disabled
    • color
        // item.wxml
        <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>
    
        // item.js
        Page({
            data: {
                items: [
                    {name: 'USA', value: '美国'},
                    {name: 'CHN', value: '中国', checked: 'true'},
                    {name: 'BRA', value: '巴西'},
                    {name: 'JPN', value: '日本'},
                    {name: 'ENG', value: '英国'},
                    {name: 'TUR', value: '法国'},
                ]
            },
            radioChange: function(e) {
                console.log('radio发生change事件,携带value值为:', e.detail.value)
            }
        })
  9. slider:滑动选择器。
    • min(0) — 最小值
    • max(100) — 最大值
    • step(1) — 步幅,取值必须大于0且能被max-min整除
    • disabled
    • value(number) — 当前取值
    • color — 背景颜色,推荐使用backgroundColor
    • activeColor(#1aad19) — 以选择的颜色
    • backgroundColor(#e9e9e9) — 背景条的颜色
    • show-value(false) — 是否显示当前 value
    • bindchange(event) — 完成一次拖动后触发的事件,event.detail = {value: value}
  10. switch:开关选择器
    • checked(false)
    • type(switch) — 样式,有效值:switch, checkbox
    • bindchange(event) — checked 改变时触发 change 事件,event.detail={ value:checked}
    • color — switch 的颜色
  11. textarea: 多行输入框
    • value — 输入框的内容
    • placeholder
    • placeholder-style
    • placeholder-class
    • disabled
    • maxlength(140) — 输入的最大长度,值为-1时不限制
    • focus(false) — 自动获取焦点
    • bindfocus(event) — 输入框聚焦时触发,event.detail = {value: value}
    • bindblur(event) — 输入框失去焦点时触发,event.detail = {value: value}
    • bindlinechange(event) — 输入框行数变化时调用,event.detail = {height: 0, heightRpx: 0, lineCount: 0}
    • bindinput(eent) — 当键盘输入时,触发 input 事件,event.detail = {value: value}, bindinput 处理函数的返回值并不会反映到 textarea 上
    • bindconfirm(event) — 点击完成时, 触发 confirm 事件,event.detail = {value: value}

导航(navigator: 页面链接)

+ url(string) ---   应用内的跳转链接    
+ open-type(navigate) --- 跳转方式 
    - navigate  对应 wx.navigateTo 的功能    
    - redirect  对应 wx.redirectTo 的功能    
    - switchTab 对应 wx.switchTab 的功能 
    - reLaunch  对应 wx.reLaunch 的功能  
    - navigateBack  对应 wx.navigateBack 的功能 
+ delta(number) --- 当 open-type 为 'navigateBack' 时有效,表示回退的层数    
+ hover-class(navigator-hove) --- 指定点击时的样式类,当hover-class="none"时,没有点击态效果    
+ hover-start-time(50)  
+ hover-stay-time(600)  

媒体组件


  1. audio: 音频
    • id
    • src
    • loop(false) — 是否循环播放
    • controls(true) — 是否显示默认控件
    • poster(path) — 默认控件上的音频封面的图片资源地址,如果 controls 属性值为 false 则设置 poster 无效
    • name(未知音频) — 默认控件上的音频名字,如果 controls 属性值为 false 则设置 name 无效
    • author(未知作者) — 默认控件上的作者名字,如果 controls 属性值为 false 则设置 author 无效
    • binderror(event) — 当发生错误时触发 error 事件,detail = {errMsg: MediaError.code}
    • bindplay(event) — 当开始/继续播放时触发play事件
    • bindpause(event) — 当暂停播放时触发 pause 事件
    • bindtimeupdate(event) — 当播放进度改变时触发 timeupdate 事件,detail = {currentTime, duration}
    • bindended(event) — 当播放到末尾时触发 ended 事件
  2. image: 图片
    • src
    • mode(‘scaleToFill’) — 图片裁剪、缩放的模式
    • binderror(event) — 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: ‘something wrong’}
    • bindload(event) — 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:’图片高度px’, width:’图片宽度px’}
  3. video: 视频
    • src
    • duration — 规定视频时长
    • controls
    • danmu-list — 弹幕列表
    • danmu-btn(event) — 是否显示弹幕按钮,只在初始化时有效,不能动态变更
    • enable-danmu(false) — 是否展示弹幕,只在初始化时有效,不能动态变更
    • autoplay(false)
    • bindplay(event) — 当开始/继续播放时触发play事件
    • bindpause(event) — 当暂停播放时触发 pause 事件
    • bindended(event) — 当播放到末尾时触发 ended 事件
    • bindtimeupdate
    • objectFit(contain) — 当视频大小与 video 容器大小不一致时,视频的表现形式。contain:包含,fill:填充,cover:覆盖
    • poster

video标签认宽度300px、高度225px,设置宽高需要通过wxss设置width和height。

地图、画布、客服会话等下期继续。。。

微信小程序开发:微信小程序组件应用研究 视图容器组件<view>:最基本的容器组件,用于布局,可设置样式、绑定事件等。:可实现内容滚动效果,通过设置scroll-xscroll-y属性控制横向或纵向滚动,属性可使指定元素滚动到可视区域等。文本组件<text>:用于显示普通文本,可通过selectable属性设置是否可选中,space属性处理空格显示等。:用于富文本展示,可解析 HTML 样式的标签,实现图文混排等复杂文本效果。图像组件<image>:用于显示图片,src属性指定图片路径,mode属性控制图片缩放模式,如aspectFit。 阅读详情

相关推荐

微信小程序组件的通信方式有哪些?

【代码】微信小程序组件的通信方式有哪些?

alankuo的专栏 2011

uniapp开发小程序如何修改picker选中样式及选中字体样式

uniapp开发小程序修改picker样式

weixin_44705979的博客 1万+

【微信小程序】WXML-组件

学习微信小程序的组件,参考官方DOC。需要啥组件直接去官方DOC拿code就完事=)

领头羊的博客 1829

小程序下拉框自定义样式picker修改样式picker-view修改样式

小程序里面如果想要自定义一个弹框如上图所示的样式,首先picker是可以放弃的了,因为它根本没有办法修改样式,也一直被吐槽直到picker-view的出现,picker-view修改样式起来可以说是为所欲为了,下面我们说一下需要注意的地方,最下方是官方文档属性,我这里用的是indicator-class属性修改中间的样式 TIP: 1. input的 placeholder的样式可...

Hero_rong的博客 2万+

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

早知晓的博客 11万+

R 绘制环形树状图

按大类小类的从属关系绘制环形图,并把不同值的节点设置为相应大小。要求同一类的节点应为同一颜色。 按照输入,处理代码和输出记录

weixin_43718786的博客 1875

微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.7 滚动选择器组件,使用两种方式自定义实现省、市、区三级联动的选择器

一、关于pick组件的相关问题 1.1 object array 这个属性值是怎么回事?如何使用它? array: ['美国', '中国', '巴西', '日本'], objectArray: [ { id: 0, name: '美国' }, { id: 1, name: '中国' }, { id: 2, name: '巴西' }, { id: 3, name: '日本' } ], 对于picker组件, range属性,可以是数组,也可以是对象数组 如果要

weixin_42580704的博客 1219

从工艺文件到寄生分析:手把手教你用华大九天RCExplorer做版图预检(附ITF文件解析)

本文详细介绍了华大九天RCExplorer工具在模拟IC和版图设计中的应用,从工艺文件解析到寄生参数提取的全流程。通过ITF文件的深度解析和实战案例,帮助工程师掌握金属层、介质层及通孔参数的关键影响,提升设计效率与准确性。文章还提供了与StarRC工作流集成的实用技巧,是国产EDA工具应用的权威指南。

weixin_42522552的博客 408

小程序picker-view改变选中上下边框样式

picker-view有这样l两个属性 indicator-style 和 indicator-class 我们只需要设置: <picker-view indicator-class="picker-box" style="width: 100%; height: 200px;" bindchange="drugChange"> &l...

qq_42975998的博客 8705

基于51单片机的智能花盆灌溉系统设计与实现

本文详细介绍了基于51单片机的智能花盆灌溉系统设计与实现,通过DS18B20温度传感器、土壤湿度传感器和LCD1602显示屏等硬件模块,结合精确的算法控制,实现自动监测与灌溉。系统解决了传统灌溉依赖定时器、缺乏可视化界面的问题,适合上班族、园艺爱好者和植物园工作人员使用,有效提升植物养护效率。

honey的博客 1017

别再死记硬背了!用Multisim仿真5分钟搞懂运放电压跟随器到底要不要加反馈电阻

本文通过Multisim仿真实验,深入解析运放电压跟随器中反馈电阻的必要性。实验对比不同阻值对电路性能的影响,揭示反馈电阻在提供偏置电流通路、提升高频稳定性和ESD保护中的关键作用,并给出工程实践中的优化建议,帮助工程师快速掌握运放电路设计要点。

weixin_42641998的博客 371

自研组件<十九> 自定义picker组件 可以自定义背景/选中高亮文字

可以设置背景和选中文字颜色的picker组件,支付宝小程序和微信小程序有区别

hanchengmei的博客 2588

手把手教你学simulink(95.1)--PID控制实例:基于Simulink的PID控制温度控制系统建模与仿真

温度控制是工业自动化、家用电器、医疗设备以及航空航天等领域中常见的控制问题。通过精确的温度控制,可以提高生产效率、降低能耗并确保产品质量。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于各种温度控制系统。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的温度控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 794

微信小程序开发学习笔记②组件和API

微信小程序开发组件与API

tutgxu的博客 1917

SRS流媒体服务器在Windows下的安装

在之前的流媒体开发中(视频会议),我基本上使用nginx加模块的方式进行学习、测试,正式开发的时候改为服务器端用EasyDarwin,客户端用rtsp-simple-server(这些流媒体服务器的用法见我以前的博文),这样可以充分利用客户端的资源,降低服务器端的压力。在流媒体协议方案,我选择相对较快的rtsp。这个协议优点是支持UDP协议,优化好的环境下可以实现3秒以下的延迟,基本满足甲方要求,缺点就是不支持网页播放。

dgnankai的专栏 2023

【ARM CoreLink 系列 4.2 -- NI-700 Function units 详细介绍】

CoreLink NI-700的ASNI(AXI系统网络接口)完成者单元负责接收并处理来自AXI请求者设备的请求。这些单元将事务打包成根据NI-700通用传输(GT)协议的Flits,并将GT响应Flits解包成AXI响应。AXI与GT协议之间的请求、数据和响应事务的转换:确保AXI事务可以被NI-700网络正确处理,并将GT协议的响应正确转换回AXI响应。入站事务的突发拆分。

CodingCos的博客 1324

微信小程序学习之路——媒体组件(二)

Camera 调用系统相机,该组件是原生组件,使用时请注意相关限制。扫码二维码功能需要将微信客户端升级到6.7.3并且需要用户授权,其属性如下: 属性名 类型 默认值 说明 最低版本 mode String normal 有效值为 normal, scanCode 2.1.0 device-position String ba...

创作星球 871

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

微信小程序学习(二)--组件

组件 组件是视图层的基本组成单元。 组件自带一些功能与微信风格的样式。 一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之内。 所有组件与属性都是小写,以连字符-连接 共同属性类型 属性名 类型 描述 注解 id String 组件的唯一标示 保持整个页面唯一 class String 组件的样式类 在对应的wxss中定义的样式类

Mr.Yuan 1793

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

UniApp组件与微信小程序组件对照学习

UniApp只是一个第三方的开发工具,借鉴各种平台的能力,UniApp的组件也借鉴了微信小程序的组件,我们学习时,可以进行对照学习,我们在用UniApp开发微信小程序时,UniApp也只是将代码转成了微信小程序的代码,还是需要了解微信小程序开发,才能开发出微信小程序的。

小川搞开发的博客 2833

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【微信小程序】自定义组件(二)

本文主要讲述了微信小程序中自定义组件的进阶知识,包括自定义组件数据和方法的使用,纯数据字段,生命周期等等

weixin_62542181的博客 9956

微信小程序签字板组件化案例(二)

本文介绍了微信小程序签字板组件的实现过程。通过将签字功能封装为可复用组件,包含canvas画布绘制、触摸事件处理、重签和提交功能。组件支持手势签名、生成图片文件并返回给父页面,实现了完整的电子签名流程。

weixin_42410263的博客 1078

微信小程序开发(教学笔记)——二、组件

第二章:组件;包含:1、view组件的基本用法;2、scroll-view组件的基本用法;3、swiper和swiper-item组件的基本使用;4、常用的`基础内容`组件;5、button 按钮的基本使用;6、image 组件(及mode属性)的基本使用

B6665X的博客 1343

《微信小程序-进阶篇》组件封装-Icon组件的实现(二)

本文难度属于:初级,适合 了解完小程序基础知识的小伙伴,本组件分为 上下两篇,本篇为 下篇,主讲Icon组件的实现阶段,主要实现的功能为预期的三个属性:icon,color,size,完成后的组件得可以被业务页面正常使用,本组件的主要知识点在于以下...........

Oliver尹的博客 1785

微信小程序 组件与页面的传参、方法调用(二)

微信小程序 组件与页面的传参、方法调用 使用小程序组件时经常不会只用到静态页面显示,需要一定的交互。这时候就需要知道这么传参与方法调用的了 首先先放官方的文档,介绍的还是比较清楚详细,有能力的同学请直接阅读官方文档小程序组件官方文档 目录: 一、页面传递参数给组件 二、组件传递参数回页面 三、页面调用组件中的方法 四、组件调用页面中的方法 一、页面传递参数给组件 1、第一步先在组件js中声明需要接受的变量名 在 js页面中 properties 里面声明定义,我们定义了 btnText 用来接收 Strin

mqbug的博客 6460

微信小程序组件间传值

一. 微信小程序父组件向子组件传值 1.父组件可以直接传参或者使用数据绑定向子组件动态传递数据 组件在父组件内写法: <view> <!-- 以下是对一个自定义组件的引用 --> <my-component inner-text="Some text" numberA='5' numberB='4' prop-a="{{dataFieldA}}"></my-component> </view> 2.子组件 Component({

qq_21747731的专栏 6389

如何在微信小程序引入第三方组件

如何在微信小程序引入第三方组件库前言一、新建一个项目二、引入组件库(一)执行nmp init命令创建package.json文件(二)引入组件库三、构建npm四、使用组件(一)在.json文件引入组件(二)修改wxml文件 前言 微信小程序的开发过程越来越简便,上手十分快,如果是学过vue的同学做起来就更觉得十分亲切了。微信小程序更多是引入第三方组件库进行开发,顾名思义就是借用别人的模板进行创作,那么这里给大家完整介绍如何把第三方组件库引入到项目中。 提示:以下是本篇文章正文内容,下面案例可供参考 一

小行星住户的博客 1万+
上一篇: vuex怎么学(一)
下一篇: linux系统操作指令速查速记
EricLua
博客等级 码龄10年 34粉丝 33原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值