1、前言

通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识。后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了。关于手机端的浏览器的兼容性问题相信一直是开发者们的一块心病,对于微信开发前端组件这一块总是找不到合适的移动端组件,什么都要自己去实现,这个开发成本就大了去了。于是乎博主打算另辟蹊径,找找基于微信开发的移动端UI组件,最后找到了微信官方开发的一套前端组件:WeUI。

2、WeUI基本介绍

2.1 WeUI概述

WeUI、微信公众号开发的瑞士军刀。WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。有了这个作为基础,我们再也不用担心微信开发的浏览器兼容性问题了,微信官方推出的这个东西拯救了千千万万的开发者!

jQuery WeUI 是专为微信公众账号开发而设计的一个简洁而强大的UI库,包含全部WeUI官方的CSS组件,并且额外提供了大量的拓展组件,丰富的组件库可以极大减少前端开发时间。

jQuery WeUI 的最大特点是它只提供UI组件,并不会对项目所使用的框架和其他库有任何的限制,几乎可以在任何环境下使用。无论你的项目是基于jQuery,还是 React, Angular, Vue, 你都会发现 jQuery WeUI 能非常方便的和他们结合使用。既是你的项目是一个有很悠久历史的老项目,也几乎可以做到拿来即用。

WeUI开源地址:github.com/Tencent/weu…

WeUI使用示例:weui.io/

基于jquery的WeUI:jqweui.com/(提供了大量的第三方组件库)

2.2 为什么选择jQuery WeUI

jQuery WeUI 的定位正如 jQuery 的定位:做一把锋利易用的小刀,而不是做一个笨重的大炮。

  • 简单易用,无上手难度
  • 丰富强大的组件库,并且还在不断完善中
  • 轻量,无限制,可以结合任何主流JS框架使用,比如 Vue, Angular, React
  • 高性能的 CSS3 动画,低端手机上依然可以较流畅运行
  • 详尽完善的官方文档
  • 标准稳定的API,基本可以保证版本透明更新
  • 基于 MIT 协议发布,免费开源

下面引用几张WeUI官方提供的jQuery WeUI组件展示。

3、jQuery WeUI基本用法

考虑到大家对WeUI组件的使用有忧虑,不知如何下手。下面我就从最基础的开始,手把手教你入门WeUI。已经很熟悉的朋友请直接跳过此段,前往官方网站查看demo。

1、引用必须的文件

如果你用的是原始的开发方式,比如基于jQuery的开发,那么你首先需要去Github上面将WeUI的源文件down下来,然后引入到你的项目;如果是基于npm管理组件,使用npm命令的方式引入WeUI组件即可。这里我们使用的是原始的开发方式。如果你只需要WeUI的css样式支持,那么你只需要引入weui.css文件即可;如果除了样式之外,还需要WeUI的js组件支持,那么你还需要引用另外一个包:weui.js。下面先介绍基础的WeUI样式库,先来看看WeUI到底能为我们带来啥,后面再来分享WeUI.js以及jquery.WeUI.js的相关技术。

要使用WeUI,这里首先必须引入css样式文件

<link rel="stylesheet" href="/Content/weui-master/dist/style/weui.css" />

2、最基础的组件样式

下面我们以一个最基础的表单来展示WeUI的使用方法,如下我们开发一个个人资料录入的页面效果。

<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"><title>个人资料录入</title><link rel="stylesheet" href="https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css" />
</head>
<body><div class="container"><div class="page navbar js_show"><div class="page__bd"><div class="weui-cells__title">填写个人资料</div><div class="weui-cells weui-cells_form"><div class="weui-cell"><div class="weui-cell__hd"><label class="weui-label">姓名</label></div><div class="weui-cell__bd"><input class="weui-input" type="text" placeholder="请输入姓名" /></div></div><div class="weui-cell"><div class="weui-cell__hd"><label class="weui-label">QQ</label></div><div class="weui-cell__bd"><input class="weui-input" type="number" pattern="[0-9]*" placeholder="QQ号" /></div></div><div class="weui-cell weui-cell_vcode"><div class="weui-cell__hd"><label class="weui-label">手机号</label></div><div class="weui-cell__bd"><input class="weui-input" type="tel" placeholder="请输入手机号" /></div><div class="weui-cell__ft"><button class="weui-vcode-btn">获取验证码</button></div></div><div class="weui-cell"><div class="weui-cell__hd"><label for="" class="weui-label">出生日期</label></div><div class="weui-cell__bd"><input class="weui-input" type="date" value="" /></div></div><div class="weui-cell"><div class="weui-cell__hd"><label for="" class="weui-label">注册时间</label></div><div class="weui-cell__bd"><input class="weui-input" type="datetime-local" value="" placeholder="" /></div></div><div class="weui-cell"><div class="weui-cell__hd"><label class="weui-label">性别</label></div><div class="weui-cell__bd"><div class="weui-cells weui-cells_radio"><label class="weui-cell weui-check__label" for="x11"><div class="weui-cell__bd"><p>男</p></div><div class="weui-cell__ft"><input type="radio" class="weui-check" name="radio1" id="x11" /><span class="weui-icon-checked"></span></div></label><label class="weui-cell weui-check__label" for="x12"><div class="weui-cell__bd"><p>女</p></div><div class="weui-cell__ft"><input type="radio" name="radio1" class="weui-check" id="x12" checked="checked" /><span class="weui-icon-checked"></span></div></label></div></div></div><div class="weui-cell"><div class="weui-cell__hd"><label class="weui-label">爱好</label></div><div class="weui-cell__bd"><div class="weui-cells weui-cells_checkbox"><label class="weui-cell weui-check__label" for="s11"><div class="weui-cell__hd"><input type="checkbox" class="weui-check" name="checkbox1" id="s11" checked="checked" /><i class="weui-icon-checked"></i></div><div class="weui-cell__bd"><p>篮球</p></div></label><label class="weui-cell weui-check__label" for="s12"><div class="weui-cell__hd"><input type="checkbox" name="checkbox1" class="weui-check" id="s12" /><i class="weui-icon-checked"></i></div><div class="weui-cell__bd"><p>足球</p></div></label><label class="weui-cell weui-check__label" for="s13"><div class="weui-cell__hd"><input type="checkbox" name="checkbox1" class="weui-check" id="s13" /><i class="weui-icon-checked"></i></div><div class="weui-cell__bd"><p>游泳</p></div></label></div></div></div><div class="weui-cell weui-cell_select"><div class="weui-cell__bd"><select class="weui-select" name="select1"><option selected="" value="1">微信号</option><option value="2">QQ号</option><option value="3">Email</option></select></div></div><div class="weui-cell weui-cell_vcode"><div class="weui-cell__hd"><label class="weui-label">验证码</label></div><div class="weui-cell__bd"><input class="weui-input" type="text" placeholder="请输入验证码" /></div><div class="weui-cell__ft"><img class="weui-vcode-img"  src="vcode.png" /></div></div></div><div class="weui-btn-area"><a class="weui-btn weui-btn_primary" href="javascript:" id="showTooltips">确定</a></div></div></div></div>
</body>
</html>

我们用google浏览器的移动端模式测试效果如下:

代码讲解

(1)网页上面的<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">这一句必须要有,这个和WeUI无关,是浏览器的显示比例问题。建议各位准备做移动端开发之前可以百度下viewport的含义,这样更容易理解响应式。加这一句是告诉浏览器在不同的设备上面的显示比例问题。

(2)最外面必须要有一个大的容器div,即上述代码里面的

这个标签;页面的所有标签必须放在这个里面;

(3)上述代码里面的radio和checkbox的效果是可以切换的。比如上述代码改下可以将性别这一项变成多选选,爱好这一项变成单选,你只需要将radio和checkbox切换即可。

4、其他基础组件展示

4.1、switch开关

<div class="container" id="container"><div class="page navbar js_show"><div class="page__bd"><div class="weui-cells__title">开关</div><div class="weui-cells weui-cells_form"><div class="weui-cell weui-cell_switch"><div class="weui-cell__bd">是否显示</div><div class="weui-cell__ft"><input class="weui-switch" type="checkbox" /></div></div><div class="weui-cell weui-cell_switch"><div class="weui-cell__bd">是否置顶(兼容IE浏览器写法)</div><div class="weui-cell__ft"><label for="switchCP" class="weui-switch-cp"><input id="switchCP" class="weui-switch-cp__input" type="checkbox" checked="checked" /><div class="weui-switch-cp__box"></div></label></div></div></div></div></div>
</div>

4.2、文本框搜索组件

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"><title>WeUI测试</title><link rel="stylesheet" href="/Content/weui-master/dist/style/weui.css" />@*<--example.css可以不引用-->*@<link rel="stylesheet" href="/Content/weui-master/dist/example/example.css" /></head>
<body><div class="container" id="container"><div class="page navbar js_show"><div class="page__bd"><div class="weui-search-bar" id="searchBar"><form class="weui-search-bar__form" onsubmit="return false;"><div class="weui-search-bar__box"><i class="weui-icon-search"></i><input type="search" class="weui-search-bar__input" id="searchInput" placeholder="搜索" required /><a href="javascript:" class="weui-icon-clear" id="searchClear"></a></div><label class="weui-search-bar__label" id="searchText"><i class="weui-icon-search"></i><span>搜索</span></label></form><a href="javascript:" class="weui-search-bar__cancel-btn" id="searchCancel">取消</a></div><div class="weui-cells searchbar-result" id="searchResult"></div></div></div></div><script src="~/scripts/jquery-1.9.1.min.js"></script><script type="text/javascript">$(function(){var $searchBar = $('#searchBar'),$searchResult = $('#searchResult'),$searchText = $('#searchText'),$searchInput = $('#searchInput'),$searchClear = $('#searchClear'),$searchCancel = $('#searchCancel');function hideSearchResult(){$searchResult.hide();$searchInput.val('');}function cancelSearch(){hideSearchResult();$searchBar.removeClass('weui-search-bar_focusing');$searchText.show();}$searchText.on('click', function(){$searchBar.addClass('weui-search-bar_focusing');$searchInput.focus();});$searchInput.on('blur', function () {if(!this.value.length) cancelSearch();}).on('keydown', function (event) {if (event.keyCode == 13) {alert("执行搜索");}});;$searchClear.on('click', function(){hideSearchResult();$searchInput.focus();});$searchCancel.on('click', function(){cancelSearch();$searchInput.blur();});});</script>
</body>
</html>

4.3、正在加载、暂无更多、查看更多效果

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"><title>WeUI测试</title><link rel="stylesheet" href="/Content/weui-master/dist/style/weui.css" /></head>
<body><div class="container" id="container"><div class="page navbar js_show"><div class="page__bd"><div class="weui-loadmore"><i class="weui-loading"></i><span class="weui-loadmore__tips">正在加载</span></div><div class="weui-loadmore weui-loadmore_line"><span class="weui-loadmore__tips">暂无数据</span></div><div class="weui-panel__ft"><a href="#" style="border-bottom: 1px solid #e5e5e5;border-top: 1px solid #e5e5e5;" class="weui-cell weui-cell_access weui-cell_link"><div class="weui-cell__bd" style="font-size:16px;">查看更多</div><span class="weui-cell__ft"></span></a></div></div></div></div>
</body>
</html>

4.4、图片全屏预览

首先引入必须的样式文件

<link rel="stylesheet" href="/Content/weui-master/dist/style/weui.css" />
<link href="~/Content/jquery-weui-master/dist/css/jquery-weui.css" rel="stylesheet" />

在body最后面引入js

<script src="~/scripts/jquery-1.9.1.min.js"></script>
<script src="~/Content/jquery-weui-master/dist/js/jquery-weui.min.js"></script>
<script src="~/Content/jquery-weui-master/dist/js/swiper.js"></script>

需要说明的是这个效果需要jquery-weui.js组件的支持。你需要去down这个组件的dist目录,然后引用dist目录下面的swiper.js文件。这块有问题的可以单独留言。

引入相关的css与js文件之后,下面就可以开始着手写html了。

<div class="container" id="container"><div class="page navbar js_show"><div class="page__bd"><div class="weui-btn-area"><a class="weui-btn weui-btn_primary" href="javascript:" id="showQuery">浏览图片</a></div></div></div>
</div>

js代码初始化

script type="text/javascript">var pb1 = $.photoBrowser({items: ["/Content/jquery-weui-master/dist/demos/images/swiper-1.jpg","/Content/jquery-weui-master/dist/demos/images/swiper-2.jpg","/Content/jquery-weui-master/dist/demos/images/swiper-3.jpg"]});$('#showQuery').on('click', function () {pb1.open();  //打开});
</script>

swiper组件还提供了带图片文字描述的效果,和PC端的焦点图效果一样一样的。我们将上述js代码稍作修改:

<script type="text/javascript">var pb1 = $.photoBrowser({items: [{image: "/Content/jquery-weui-master/dist/demos/images/swiper-1.jpg",caption: "文字描述1"},{image: "/Content/jquery-weui-master/dist/demos/images/swiper-2.jpg",caption: "文字描述2"},{image: "/Content/jquery-weui-master/dist/demos/images/swiper-3.jpg",caption: "文字描述3"}]});$('#showQuery').on('click', function () {pb1.open();  //打开});
</script>

swiper组件的应用有很多可供参考的使用方式,大家可根据实际自行扩展。

参考文章

微信公众平台技术文档-官方

Senparc.Weixin SDK + 官网示例源代码

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

RDIFramework.NET代码生成器全新V3.5版本发布-重大升级


一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。

RDIFramework.NET官方网站:www.rdiframework.net/

RDIFramework.NET官方博客:blog.rdiframework.net/

同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏!

RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用!

欢迎关注RDIFramework.net框架官方公众微信(微信号:guosisoft),及时了解最新动态。

扫描二维码立即关注

转载于:https://juejin.im/post/5cff110a6fb9a07ea803c071

微信公众号开发系列-12、微信前端开发利器:WeUI相关推荐

  1. python开发微信公众号开发教程百度云_Python开发微信公众号后台(系列一)

    Python 开发微信公众号后台(系列一) 專 欄段晓晨,写过一点爬虫,写过几篇文章.能力虽 有限,会尽量把想说的东西讲清楚. 知乎 ID :段小草 知乎专栏:小段同学的杂记, https://zhu ...

  2. Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理

    在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...

  3. 微信公众号支付java前后端分离开发

    微信公众号支付java前后端分离开发 微信公众号支付java前后端分离开发 我们开发的是基于河北银行的支付,支付宝微信都做了,这里就介绍一下微信公众号支付,这个公众号支付需要配置的东西太多了,官方文档 ...

  4. 如何开发微信公众号以及如何运营微信公众号

    微信公众号已经成为了企业.个人和组织进行品牌推广.宣传和营销的重要平台.但是,如何开发和运营微信公众号并不是一件容易的事情.本文将从以下几个方面来介绍如何开发和运营微信公众号. 一.微信公众号的开发 ...

  5. 微信公众号报修系统常见通用功能开发

    微信公众号报修系统常见通用功能开发 51报修系统是一款基于微信的用户报修.维修师傅接单.公司进行管理的一站式维修服务平台,实现报修.派单.接单.支付.评价.回访等功能.涵盖了各类生活维修服务,包括水电 ...

  6. 微信公众号数据2019_历史微信公众号排名,微信公众号新榜排名

    历史微信公众号排名,微信公众号新榜排名 公众号排名优化的注意事项及细节今天给大家分享一下,作为微信公众号的排名优化对于大多数人来说都已经知道了有这个渠道的事情,其实很多的新产品及渠道出来以后有不少的人 ...

  7. 微信公众号开发者自动回复php,微信公众平台开发者模式的启用并自动回复

    这篇文章介绍的内容是关于微信公众平台开发者模式的启用并自动回复,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 首先,什么是开发者模式? 开发者模式,就是先验证你的服务器地址,验证完成之 ...

  8. php公众号提现功能,微信公众号打赏的钱怎么提现_微信公众号打赏功能_微信公众号打赏从哪里取出来...

    微信公众号打赏的钱怎么提现,微信公众号打赏功能.微信公众号之前打赏功能可以立即取现,但是最近出现了一些变动,会有人问微信公众号打赏为什么不能立刻取现?小编为大家带来了微信公众号打赏取现时间调整. 微信 ...

  9. 支付宝支付功能实现原理,微信公众号中实现支付宝支付功能开发流程

    这篇文章使用一些简单的代码例子来解释微信接入支付宝支付功能的操作步骤,即使新手也可以轻松参透的. 第三方支付是指具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,通过与银行支付结算系统接口对 ...

  10. 基于微信公众号的答题投票系统——项目开发心得体会记录

    项目背景 项目需求 后台管理功能 用户功能 页面展示 项目信息 开发语言 数据库 项目构想 获取幸运用户 用户答题 项目反思 项目进度的安排 团队合作沟通方面 项目的构建 技术 本地开发和上线的模式区 ...

最新文章

  1. vue+antdesign导航菜单动态加载
  2. Altair PollEx 2020中文版
  3. 使用WebBrowser控件获取网页源码的方法
  4. 黑马程序员--c#中break_continue_return__goto_throw的区别
  5. Github使用1-入门
  6. xdm,把我大学四年能用到的软件都分享给你。
  7. 【CodeForces - 460C】Present(二分+树状数组)
  8. IOS 使用 ZbarSDK 二维码扫描
  9. 【BZOJ3894】文理分科(最小割)
  10. Mini USB针脚定义
  11. Kibana:Drilldown 中的 URL 模板
  12. I/O多路复用select服务器
  13. win7一直显示正在启动_win7旗舰版升级后无法启动电脑的解决方法
  14. 视频异常事件检测Object-centric Auto-encoders and Dummy Anomalies for Abnormal Event Detection in Video
  15. 介绍Hosts文件和DNS及DNS的解析过程
  16. OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 5726797824, 0) failed;
  17. 前端重要信息手机号、邮箱、身份证号进行脱敏处理
  18. 网络安全应急响应----10、内存分析
  19. html一条竖线写法
  20. osgEarth的Rex引擎原理分析(四十三)osgEarth的Geographic、Geodetic、Geocentric和Project的关系

热门文章

  1. Modeling Personalized Item Frequency Information for Next-basket Recommendation
  2. 超市管理系统-1(JavaSwing和Oracle数据库)
  3. html图片缩小属性,css怎么缩小图片?
  4. MATLAB函数合辑
  5. 贴片电阻封装经验选择学习研究总结
  6. 在NBMA网络中配置OSPF
  7. 未来五年10大关键IT趋势
  8. OpenGL之纹理过滤的四种方式
  9. USB to TTL python 本地测试串口通信
  10. EXCEL的嵌套if及时间处理