快速上手

获取 WeUI
WeUI 是一套与微信原生 UI 一致的 UI 库,核心文件是 weui.css,只需要获取到该文件,然后在页面中引入,即可使用 WeUI 的组件。有以下几种获取方式:
微信官方、BootCDN 和 cdnjs 为 WeUI 提供了 CDN 链接,推荐使用,链接如下:

代码片段
4 行
微信官方	//res.wx.qq.com/open/libs/weui/1.1.2/weui.min.css
微信官方	//res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css
BootCDN	//cdn.bootcss.com/weui/0.4.3/style/weui.css
cdnjs	//cdnjs.cloudflare.com/ajax/libs/weui/0.4.3/style/weui.css

其中,1.0.0是目前 WeUI 最新的版本号,代码命名有较大的改变,因此保留0.4.2的CDN。

以上链接,均支持 http 和 https 协议,均包含未压缩版 weui.css 和压缩版 weui.min.css 。
使用

通过以上方式获取到 WeUI 后,在页面中引入后即可使用。以 WeUI 的按钮为例:

更多的上手示例,请参考 http://weui.io/

组件列表

ActionSheet

ActionSheet用于显示包含一系列可交互的动作集合,包括说明、跳转等。由底部弹出,一般用于响应用户对页面的点击。

Article

文字视图显示大段文字,这些文字通常是页面上的主体内容。Article支持分段、多层标题、引用、内嵌图片、有/无序列表等富文本样式,并可响应用户的选择操作。

在微信客户端webview中使用Article,必须保证文字有足够的可读性和可辨识性、使用规范字体、保证足够的段间距、段首无缩进。

article image

Badge

badge,徽章

带文字的badge

小红点

更多用法请看:https://weui.io/#badge

Button

按钮可以使用a或者button标签。wap上要触发按钮的active态,必须触发ontouchstart事件,可以在body上加上ontouchstart=""全局触发。

按钮常见的操作场景:确定、取消、警示,分别对应class:weui-btn_primary、weui-btn_default、weui-btn_warn,每种场景都有自己的置灰态weui-btn_disabled,除此外还有一种镂空按钮weui-btn_plain-xxx,客户端webview里的按钮尺寸有两类,默认宽度100%,小型按钮宽度自适应,两边边框与文本间距0.75em:

article image

Cell

Cell,列表视图,用于将信息以列表的结构显示在页面上,是wap上最常用的内容结构。Cell由多个section组成,每个section包括section headerweui-cells__title以及cellsweui-cells。

cell由thumbnailweui-cell__hd、bodyweui-cell__bd、accessoryweui-cell__ft三部分组成,其中weui-cell__bd采用自适应布局.

Dialog

Dialog,也叫 “modal”,表现为带遮罩的弹框。可以分为 Alert 和 Confirm 两种。

Alert

alert,警告弹框,功能类似于浏览器自带的 alert 弹框,用于提醒、警告用户简单扼要的信息,只有一个“确认”按钮,点击“确认”按钮后关闭弹框。

示例代码如下:

预览效果如下:

article image

Confirm

Confirm,确认弹框,功能类似于浏览器自带的 confirm 和 prompt 的集合,可以用于让用户确认/取消确认,也可以让用户填写表单。

示例代码如下:

预览效果如下:

article image

Flex

Flex用于快速进行Flex布局

Footer

Footer用于实现页脚,Copyright

Gallery

Gallery用于实现上传图片的展示或幻灯片播放

Grid

grid 九宫格,功能类似于微信钱包界面中的九宫格,用于展示有多个相同级别的入口。包含功能的图标和简洁的文字描述。

article image

Loadmore

Loadmore用于实现加载更多的效果。

Input

Input,用于表单,可以分成“输入型”和“选择型”两种。输入型包括单行文本(文本、数值、电话、密码等)、多行文本;选择型包括下拉选择、单选、多选、开关、日期时间等。在 WeUI 中,表单通常与 Cell 组件配合使用。

示例代码如下:

Msg Page

结果页通常来说可以认为进行一系列操作步骤后,作为流程结束的总结性页面。结果页的作用主要是告知用户操作处理结果以及必要的相关细节(可用于确认之前的操作是否有误)等信息;若该流程用于开启或关闭某些重要功能,可在结果页增加与该功能相关的描述性内容;除此之外,结果页也可以承载一些附加价值操作,例如提供抽奖、关注公众号等功能入口。

article image

Navbar

Navbar,顶部 tab,当需要在页面顶部展示 tab 导航时使用,用法与 Tabbar 类似。

article image

.weui-navbar 通常作为 .weui-tab 子元素、.weui-tab__panel 的兄弟元素一起使用。结构为:

.weui-tab 作为外层容器,高度撑满它的父容器的高度,.weui-tab__panel 作为 tab 的主体内容,占据除了 .weui-navbar 以外的全部父容器的高度,.weui-navbar 则为底部的导航栏。而 .weui-navbar__item 为 .weui-navbar 的子元素,表示一个导航区,建议不超过 5 个。

另外,需要给当前激活的 .weui-navbar__item 元素添加 .weui-bar__item_on 类,来标示当前高亮的条目。

Panel

Panelweui-panel由head(可选)、body、foot(可选)三部分组成,主要承载了图文组合列表weui-media-box_appmsg、文字组合列表weui-media-box_text以及小图文组合列表weui-media-box_small-appmsg。

body部分根据不同业务可自定义不同的内容。foot部分默认支持“查看更多”的样式,需要在weui-panel扩展一个weui-panel_access的类。

article image

图文组合列表:包括封面图、标题与描述,封面图居左,与文字垂直居中对齐,示例代码如下:

Picker

picker,选择器,因为picker需要依赖js,

Functions
picker(items, options)
picker 多列选择器。

datePicker(options)
datePicker 时间选择器,由picker拓展而来,提供年、月、日的选择。

picker(items, options)

picker 多列选择器。
Kind: global function
[table][thead] [tr] [th]Param[/th] [th]Type[/th] [th]Default[/th] [th]Description[/th] [/tr] [/thead] [tbody] [tr] [td]items[/td] [td]array[/td] [td][/td] [td]picker的数据,即用于生成picker的数据,picker的层级可以自己定义,但建议最多三层。数据格式参考example。[/td] [/tr] [tr] [td]options[/td] [td]Object[/td] [td][/td] [td]配置项[/td] [/tr] [tr] [td][options.depth][/td] [td]number[/td] [td][/td] [td]picker深度(也就是picker有多少列) 取值为1-3。如果为空,则取items第一项的深度。[/td] [/tr] [tr] [td][options.id][/td] [td]string[/td] [td]"default"[/td] [td]作为picker的唯一标识,作用是以id缓存当时的选择。(当你想每次传入的defaultValue都是不一样时,可以使用不同的id区分)[/td] [/tr] [tr] [td][options.className][/td] [td]string[/td] [td][/td] [td]自定义类名[/td] [/tr] [tr] [td][options.container][/td] [td]string[/td] [td][/td] [td]指定容器[/td] [/tr] [tr] [td][options.defaultValue][/td] [td]array[/td] [td][/td] [td]默认选项的value数组[/td] [/tr] [tr] [td][options.onChange][/td] [td]function[/td] [td][/td] [td]在picker选中的值发生变化的时候回调[/td] [/tr] [tr] [td][options.onConfirm][/td] [td]function[/td] [td][/td] [td]在点击"确定"之后的回调。回调返回选中的结果(Array),数组长度依赖于picker的层级。[/td] [/tr][/tbody][/table]
Example

Example

Example

datePicker(options)
datePicker 时间选择器,由picker拓展而来,提供年、月、日的选择。

Kind: global function
[table][thead] [tr] [th]Param[/th] [th]Type[/th] [th]Default[/th] [th]Description[/th] [/tr] [/thead] [tbody] [tr] [td]options[/td] [td][/td] [td][/td] [td]配置项[/td] [/tr] [tr] [td][options.id][/td] [td]string[/td] [td]"datePicker"[/td] [td]作为picker的唯一标识[/td] [/tr] [tr] [td][options.start][/td] [td]number | string | Date[/td] [td]2000[/td] [td]起始年份,如果是 Number 类型,表示起始年份;如果是 String 类型,格式为 'YYYY-MM-DD';如果是 Date 类型,就传一个 Date[/td] [/tr] [tr] [td][options.end][/td] [td]number | string | Date[/td] [td]2030[/td] [td]结束年份,同上[/td] [/tr] [tr] [td][options.cron][/td] [td]string[/td] [td]"* * *"[/td] [td]cron 表达式,三位,分别是 dayOfMonth[1-31],month[1-12] 和 dayOfWeek[0-6](周日-周六)[/td] [/tr] [tr] [td][options.className][/td] [td]string[/td] [td][/td] [td]自定义类名[/td] [/tr] [tr] [td][options.defaultValue][/td] [td]array[/td] [td][/td] [td]默认选项的value数组, 如 [1991, 6, 9][/td] [/tr] [tr] [td][options.onChange][/td] [td]function[/td] [td][/td] [td]在picker选中的值发生变化的时候回调[/td] [/tr] [tr] [td][options.onConfirm][/td] [td]function[/td] [td][/td] [td]在点击"确定"之后的回调。回调返回选中的结果(Array),数组长度依赖于picker的层级。[/td] [/tr][/tbody][/table]
Example

Preview

Preview用于实现表单预览

Progress

Progress,进度条,用于上传、下载等耗时并且需要显示进度的场景,用户可以随时中断该操作。

完整的进度条结构如下:

div.weui-progress__inner-bar 的默认宽度为 0, 改变改元素的宽度(百分比),即可显示不同的进度。

点击 a.weui-progress__opr 元素,可以中断/取消正在进行的操作;如果不需要该操作,则可以省略掉该结构,进度条长度自动适应。

下面模拟改变进度条的值:

GDScript3
11 行
$(function(){
    var progress = 0;
    var $progress = $('.weui-progress__inner-bar');

    function uploading(){
        $progress.width(++progress % 100 + '%');
        setTimeout(uploading, 20);
    }

    setTimeout(uploading, 20);
});

预览效果如下:

article image

SearchBar

searchBar 搜索栏,类似于微信原生的搜索栏,应用于常见的搜索场景。

article image
article image

详细的代码结构如下:

Slider

slider,滑块

不带数字的slider

末端带数字的slider

js的配合用法请看:https://weui.io/#slider

Tabbar

tabbar,底部导航,通常用作 Web 应用的主界面底部导航,类似于微信主界面的底部“微信”、“通讯录”、“发现”和“我”的导航区。每个功能包含一个图标和该功能简洁的文字描述。

article image

.weui-tabbar 通常作为 .weui-tab 子元素、.weui-tab__panel 的兄弟元素一起使用。结构为:

.weui-tab 作为外层容器,高度撑满它的父容器的高度,.weui-tab__panel 作为 tab 的主体内容,占据除了 .weui-tabbar 以外的全部父容器的高度,.weui-tabbar 则为底部的导航栏。而 .weui-tabbar__item 为 .weui-tabbar 的子元素,表示一个导航区,建议不超过 5 个。

图标 .weui-tabbar__icon 约定尺寸为 24px * 24px ,二倍即 48px * 48px。

关于 active 态,开发者根据需要,给当前激活的 .weui-tabbar__item 添加标示的 .weui-bar__item_on 类名,然后控制文字颜色和图标变化。

完整的组件代码如下:

Toast

toast 用于临时显示某些信息,并且会在数秒后自动消失。这些信息通常是轻量级操作的成功信息。

提醒:WeUI 不推荐在 toast 中展示失败状态,失败状态应该使用 Alert 明确告知用户失败原因

article image

Loading

loading 形态类似于 toast,只是图标是旋转的 loading,用于从服务端拉取数据/向服务端提交数据等耗时操作。

article image

Uploader

Uploader上传组件。