微信小程序之组件(一)

什么是组件

组件是视图层的组成单元,具有UI风格样式及特定的功能效果。当打开某款小程序后,界面中的图片,文字等多需要使用组件,小程序组件使用灵活,组件之间通过相互嵌套进行界面设计,开发者可以通过组件的选择和样式属性设计出不同的界面效果,一个组件开始包括标签和结束标签,属性用来装饰这个组件的样式。

语法格式:

<标签名称 属性 = "值">

内容

</标签名称>

示例代码如下:

<button class="btn">我是按钮组件</button>

上述代码用<button></button>表示一个按钮组件,在<button>标签中通过class="btn"为<button>组件添加样式btn。

视图容器组件

一、view

view容器时页面中最基本的容器组件,通过高度和宽度来定义容器的大小。<view>相当于html中的<div>标签,是一个页面中最外层的容器,能够接受其他组件的嵌入,例如:多个view容器的嵌套。view容器可以通过flex布局自定义内部项目的排列方式。(我们这里先不讲flex布局,后面会讲到!)

其中view包含四个属性:

1.hover(默认值为:false)

这个没什么好说的哈~

2.hover-class(默认值为:none)

效果展示:

 上面的意思是,当我们不点击时,方块默认的颜色为红色,当我们点击或者长按时,方块的颜色变为蓝色!(一直按住,就一直显示蓝色!)

3.hover-stop-propagation(默认值为:false)

这是可以扎尔杨解释,,因为红色的方块在棕色的方块内,当我们用上面的hover-class属性(点击红色的方块,想要将将红色的方块去变成蓝色的时候,这里小程序默认我们一起连带着大的棕色的方块也一起点击了,如果这是大的棕色的方块也用上面的方法hover-class再点击大方块时,大方块就变成绿色。此时我们如果不设置hover-stop-propagation这个属性,当我们点击红色的方块时,红色的的方块变成蓝色的同时,棕色的大方块也变成绿色!)

效果演示(不设置hover-stop-propagation属性也就是说hover-stop-propagation属性为默认值false的时候):

 效果演示(设置hover-stop-propagation属性也就是说hover-stop-propagation属性为true的时候):

4.hover-start-time(默认值为50ms)

解释:按住方块后多久才能出现变换效果(这里我设置的是1000ms),所以点击后不会立即改变颜色,会等上1000ms后在进行变换!

 <view class="lqj1" hover-class="lqj2"
 hover-start-time="1000"></view>

5.hover-stay-time(默认值为400ms)

解释:这个属性是点击松开后,变换的效果持续多长时间!

 <view class="lqj1" hover-class="lqj2"
 hover-stay-time="1500"></view>

 二、scroll-view

scroll-view容器为可滚动的视图容器,允许用户通过手指在容器上滑动来改变显示区域,常见的滑动方向有:

水平滑动:scroll-x(默认值为false)

<scroll-view scroll-x="true">
    <view class="lqj1">元素1</view>
    <view class="lqj2">元素2</view>
    <view class="lqj3">元素3</view>
    <view class="lqj2">元素4</view>
    <view class="lqj1">元素5</view>
</scroll-view>



scroll-view{
  height: 100%;
  width: 100%;
  background-color: greenyellow;
  white-space:nowrap;
}
.lqj1{
  display: inline-block;
  height: 200rpx;
  width: 200rpx;
  background-color: red;
}
.lqj2{
  display: inline-block;
  height: 200rpx;
  width: 200rpx;
  background-color: blue;
}
.lqj3{
  display: inline-block;
  height: 200rpx;
  width: 200rpx;
  background-color: rgb(255, 0, 212);
}

 注意设置了 scroll-x=“true”,但是只是这一个属性是实现不了横向滑动的scroll-view的,还需要在.wxss里面加上如下代码 :
给scrollview本身添加: white-space:nowrap;这个属性,直接子view添加: display: inline-block; 这个属性才能实现想要的横滑

垂直滑动:scroll-y(默认值为none)

<scroll-view scroll-y="true">
    <view class="lqj1">元素1</view>
    <view class="lqj2">元素2</view>
    <view class="lqj3">元素3</view>
    <view class="lqj2">元素4</view>
    <view class="lqj1">元素5</view>
</scroll-view>



  scroll-view{
    height: 600rpx;
    width: 200rpx;
    background-color: greenyellow;
  }
  .lqj1{
    height: 200rpx;
    width: 200rpx;
    background-color: red;
  }
  .lqj2{
    height: 200rpx;
    width: 200rpx;
    background-color: blue;
  }
  .lqj3{
    height: 200rpx;
    width: 200rpx;
    background-color: rgb(255, 0, 212);
  }

 三、swiper

<swiper>组件为滑动块视图容器,通常用于图片之间的切换播放,被形象的成为"轮播图"

重要属性:

indicator-dots(默认值:false)是否显示面板指示点

indicator-color:(默认值:rgba(0,0,0,0.3))指示点的颜色

indicator-active-color:(默认值:#000000)当前选择的指示点颜色

autoplay:(默认值:false)是否自动切换

interval:(默认值:5000ms)自动切换时间间隔

<view>
  <swiper indicator-dots="true" autoplay="true" interval="2000">
  <swiper-item>
    <image src="/imaegs/2.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/imaegs/2.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="/imaegs/2.jpg"></image>
  </swiper-item>
</swiper>
</view>



swiper{
  margin:50rpx ;
  height: 500rpx;
}

 以上是正常的写法!

当然我之前页自创了一种写轮播图的效果,会用到js哈~

js:

 imgUrls: [
            'cloud://shangcheng-1gv76n6pf3af957d.7368-shangcheng-1gv76n6pf3af957d-1312670923/轮播图/7.jpg',
            'cloud://shangcheng-1gv76n6pf3af957d.7368-shangcheng-1gv76n6pf3af957d-1312670923/轮播图/1.jpg',
            'cloud://shangcheng-1gv76n6pf3af957d.7368-shangcheng-1gv76n6pf3af957d-1312670923/轮播图/5.jpg',
            'cloud://shangcheng-1gv76n6pf3af957d.7368-shangcheng-1gv76n6pf3af957d-1312670923/轮播图/22.jpg' 
          ],
          indicatorDots: true,  //是否显示面板指示点
          autoplay: true,      //是否自动切换
          interval: 2000,       //自动切换时间间隔
          duration: 300,       //滑动动画时长

 wxml:

<view>
    <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
    <block wx:for="{{imgUrls}}" wx:key="index">
      <swiper-item class="LB_a">
        <image class="LB_b"  src="{{item}}" />
      </swiper-item>
    </block>
  </swiper>
</view>

效果:

 基础内容组件

1.icon:

<icon>为图标组件,常用于页面装饰,开发者可以自定义其类型、大小和颜色。

属性:

type(默认值:false)icon类型:

success:

 success_no_circle:

info:

warn:

waiting:

cancel:

download:

search:

clear:

 代码:

<icon type="success" size="40" color="green"></icon>
<text>\n</text>
<icon type="success_no_circle" size="40" color="green"></icon>
<text>\n</text>
<icon type="info" size="40" color="green"></icon>
<text>\n</text>
<icon type="warn" size="40" color="green"></icon>
<text>\n</text>
<icon type="waiting" size="40" color="green"></icon>
<text>\n</text>
<icon type="cancel" size="40" color="green"></icon>
<text>\n</text>
<icon type="download" size="40" color="green"></icon>
<text>\n</text>
<icon type="search" size="40" color="green"></icon>
<text>\n</text>
<icon type="clear" size="40" color="green"></icon>

 size:(默认值:23px)icon的大小,单位:px

color:(#000000)icon的颜色,通css的color

2.text:

<text>为文本组件,用于文字的显示,小程序的文本组件支持转义字符。

对于新手来说,现在只知道它只能作为文本的标签就好哈~以后还会讲到!

3.progress:

重要属性:

percent:百分比0%~100%

show-info:(默认值:false)在进度条右侧显示百分比

border-radius:(默认值:0)边角圆角的大小

font-size:(默认值:16)右侧百分比字体大小

stroke-width:(默认值:6)进度条的宽度

color:(默认值:#09BB07)进度条的颜色

active:(默认值:false)进度条从左到右的动画

<progress>为进度条组件,用于进度条的显示,长度单位默认为px。

这里我们对于新手先能够写出静态的即可,慢慢来,以后还会讲到!

代码:

<progress percent="30" stroke-width="100rpx" show-info="true"></progress>

 因为我的percent里面写的是30而且我又写了show-info所以右侧会以半分比的形式显示在最右边

效果展示:

 表单组件

一、button

<button>为按钮组件,是常用的表单组件之一,用于事件的触发以及表单的提交。

重要属性:

size:按钮大小

type:按钮样式类型

plain:(默认值:false)按钮是否镂空,背景色透明

disabled:(默认值:false)是否禁用(该按钮)

loading:(默认值:false)名称前是否带loading图标

form-type:用于<form>组件,点击分别会触发<form>组件的submit/reset事件

open-type:微信开放能力(微信自带的开放能力,具体是什么能力呢,先不告诉你,后面会讲到!)

效果展示:

让你们认识认识button

<button type="primary">我是button按钮</button>

二、checkbox

<checkbox>为复选框组件,常用于在表单中进行多项数据的选择。

复选款的<checkbox-group>为父控件,其内部嵌套若干个<checkbox>子控件

checkbox-group重要属性(先不说)

checkbox重要属性:

value:(先不说,以后会讲到!)

disabled:(默认值:false)是否禁用

checked:(默认值:false)当前是否选中,可用来设置默认选中
color:checkbox的颜色,同css的color

只是显示一下静态的效果,因为有一些关于js的内容,新手不太好消化,没关系,以后会讲到的!

代码:

<checkbox-group>
  <checkbox value="tiger">老虎</checkbox>
  <checkbox value="tiger">大象</checkbox>
  <checkbox value="tiger">老鼠</checkbox>
  <checkbox value="tiger">狮子</checkbox>
  <checkbox value="tiger">蛇</checkbox>
  <checkbox value="tiger">青蛙</checkbox>
</checkbox-group>

效果展示:

三、input

<input>为输入框组件,常用于文本(如姓名,年龄等信息)的输入

重要属性:

type:(默认值:‘text’)input的类型

type类型:text(文本输入键盘)number(数字输入键盘)idcard(身份证输入键盘)digit(带小数点的数字键盘)

我的另一篇:

微信小程序(逻辑层的全部知识点)保姆级讲解_lqj_本人的博客-CSDN博客 中的3.事件对象右展示!

password:(默认值:false)是否是密码类型

maxlength:(默认值:140)最大输入长度,设置为-1时,则不限制长度

focus:(默认值:false)获取焦点,自动拉起手机键盘

adjust-position:(默认值:true)键盘弹起时,是否自动上推页面

confirm-type:(默认值:done)设置键盘右下角按钮的文字,仅在type=‘text’时生效

confirm-type重要类型:send(右下角为:发送)search(右下角为:搜索)next(右下角为:下一个)go(右下角为:前往)done(右下角为:完成)

confirm-hold:(默认值:false)点击键盘右下角按钮时是否保持键盘不收起

四、form

<form>为表单控件组件,用于提交表单组件中的内容。

<form>控件组件内部可以嵌套:

1.<input>输入框组件

2.<button>按钮组件

3.<checkbox>复选框组件

4.<switch>开关选择器

5.<radio>单选框组件

6.<picker>滚动选择器

7.<slider>滑动选择器
8.<textarea>多行输入框

9.<label>标签组件

五、picker

<picker>为滚动选择器,从页面底部弹出供用户选择,根据mode属性值的不同共有5中选择器:

1.普通选择器:

mode="selector"

2.多列选择器:

mode="multiSelector"

3.事件选择器:

mode="time"

4.日期选择器:

mode="date"

5.省份区选择器:

mode="region"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淼学派对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值