12、微信前端开发利器:WeUI
<h2 id="scroller-0">1、前言</h2><p>通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识。后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了。关于手机端的浏览器的兼容性问题相信一直是开发者们的一块心病,对于微信开发前端组件这一块总是找不到合适的移动端组件,什么都要自己去实现,这个开发成本就大了去了。于是乎博主打算另辟蹊径,找找基于微信开发的移动端UI组件,最后找到了微信官方开发的一套前端组件:WeUI。</p>
<h2 id="scroller-1">2、WeUI基本介绍</h2>
<h3 id="scroller-2">2.1 WeUI概述</h3>
<p>WeUI、微信公众号开发的瑞士军刀。WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。有了这个作为基础,我们再也不用担心微信开发的浏览器兼容性问题了,微信官方推出的这个东西拯救了千千万万的开发者!</p>
<p>jQuery WeUI 是专为微信公众账号开发而设计的一个简洁而强大的UI库,包含全部WeUI官方的CSS组件,并且额外提供了大量的拓展组件,丰富的组件库可以极大减少前端开发时间。</p>
<p>jQuery WeUI 的最大特点是它只提供UI组件,并不会对项目所使用的框架和其他库有任何的限制,几乎可以在任何环境下使用。无论你的项目是基于jQuery,还是 React, Angular, Vue, 你都会发现 jQuery WeUI 能非常方便的和他们结合使用。既是你的项目是一个有很悠久历史的老项目,也几乎可以做到拿来即用。</p>
<p>WeUI开源地址:https://github.com/Tencent/weui</p>
<p>WeUI使用示例:https://weui.io/</p>
<p>基于jquery的WeUI:http://jqweui.com/(提供了大量的第三方组件库)</p>
<h3 id="scroller-3">2.2 为什么选择jQuery WeUI</h3>
<p>jQuery WeUI 的定位正如 jQuery 的定位:做一把锋利易用的小刀,而不是做一个笨重的大炮。</p>
<ul>
<li>简单易用,无上手难度</li>
<li>丰富强大的组件库,并且还在不断完善中</li>
<li>轻量,无限制,可以结合任何主流JS框架使用,比如 <code>Vue, Angular, React</code> 等</li>
<li>高性能的 CSS3 动画,低端手机上依然可以较流畅运行</li>
<li>详尽完善的官方文档</li>
<li>标准稳定的API,基本可以保证版本透明更新</li>
<li>基于 MIT 协议发布,免费开源</li>
</ul>
<p>下面引用几张WeUI官方提供的jQuery WeUI组件展示。<br>
<img src="https://img2018.cnblogs.com/blog/157572/201905/157572-20190528112347412-388998338.png"><br>
<img src="https://img2018.cnblogs.com/blog/157572/201905/157572-20190528112354037-147014023.png"></p>
<h2 id="scroller-4">3、jQuery WeUI基本用法</h2>
<p>考虑到大家对WeUI组件的使用有忧虑,不知如何下手。下面我就从最基础的开始,手把手教你入门WeUI。已经很熟悉的朋友请直接跳过此段,前往官方网站查看demo。</p>
<p><strong>1、引用必须的文件</strong></p>
<p>如果你用的是原始的开发方式,比如基于jQuery的开发,那么你首先需要去Github上面将WeUI的源文件down下来,然后引入到你的项目;如果是基于npm管理组件,使用npm命令的方式引入WeUI组件即可。这里我们使用的是原始的开发方式。如果你只需要WeUI的css样式支持,那么你只需要引入weui.css文件即可;如果除了样式之外,还需要WeUI的js组件支持,那么你还需要引用另外一个包:weui.js。下面先介绍基础的WeUI样式库,先来看看WeUI到底能为我们带来啥,后面再来分享WeUI.js以及jquery.WeUI.js的相关技术。</p>
<p>要使用WeUI,这里首先必须引入css样式文件</p>
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" <span class="hljs-attr">href=<span class="hljs-string">"/Content/weui-master/dist/style/weui.css" /></span></span></span></span></span></span></code></pre>
<p><strong>2、最基础的组件样式</strong></p>
<p>下面我们以一个最基础的表单来展示WeUI的使用方法,如下我们开发一个个人资料录入的页面效果。</p>
<pre><code class="hljs scala"><!<span class="hljs-type">DOCTYPE html>
<html lang=<span class="hljs-string">"en">
<head>
<meta http-equiv=<span class="hljs-string">"Content-Type" content=<span class="hljs-string">"text/html; charset=gb2312" />
<meta name=<span class="hljs-string">"viewport" content=<span class="hljs-string">"width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
<title>个人资料录入</title>
<link rel=<span class="hljs-string">"stylesheet" href=<span class="hljs-string">"https://cdn.bootcss.com/weui/1.1.3/style/weui.min.css" />
</head>
<body>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"container">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"page navbar js_show">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"page__bd">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells__title">填写个人资料</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells weui-cells_form">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">姓名</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"text" placeholder=<span class="hljs-string">"请输入姓名" />
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label"><span class="hljs-type">QQ</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"number" pattern=<span class="hljs-string">"*" placeholder=<span class="hljs-string">"QQ号" />
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-cell_vcode">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd">
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">手机号</label>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"tel" placeholder=<span class="hljs-string">"请输入手机号" />
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<button <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-vcode-btn">获取验证码</button>
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-keyword">for=<span class="hljs-string">"" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">出生日期</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"date" value=<span class="hljs-string">"" />
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-keyword">for=<span class="hljs-string">"" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">注册时间</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"datetime-local" value=<span class="hljs-string">"" placeholder=<span class="hljs-string">"" />
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">性别</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells weui-cells_radio">
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-check__label" <span class="hljs-keyword">for=<span class="hljs-string">"x11">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<p>男</p>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<input <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"radio" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-check" name=<span class="hljs-string">"radio1" id=<span class="hljs-string">"x11" />
<span <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-icon-checked"></span>
</div>
</label>
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-check__label" <span class="hljs-keyword">for=<span class="hljs-string">"x12">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<p>女</p>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<input <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"radio" name=<span class="hljs-string">"radio1" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-check" id=<span class="hljs-string">"x12" checked=<span class="hljs-string">"checked" />
<span <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-icon-checked"></span>
</div>
</label>
</div>
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">爱好</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells weui-cells_checkbox">
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-check__label" <span class="hljs-keyword">for=<span class="hljs-string">"s11">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd">
<input <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"checkbox" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-check" name=<span class="hljs-string">"checkbox1" id=<span class="hljs-string">"s11" checked=<span class="hljs-string">"checked" />
<i <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-icon-checked"></i>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<p>篮球</p>
</div>
</label>
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-check__label" <span class="hljs-keyword">for=<span class="hljs-string">"s12">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd">
<input <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"checkbox" name=<span class="hljs-string">"checkbox1" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-check" id=<span class="hljs-string">"s12" />
<i <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-icon-checked"></i>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<p>足球</p>
</div>
</label>
<label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-check__label" <span class="hljs-keyword">for=<span class="hljs-string">"s13">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd">
<input <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"checkbox" name=<span class="hljs-string">"checkbox1" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-check" id=<span class="hljs-string">"s13" />
<i <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-icon-checked"></i>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<p>游泳</p>
</div>
</label>
</div>
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-cell_select">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<select <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-select" name=<span class="hljs-string">"select1">
<option selected=<span class="hljs-string">"" value=<span class="hljs-string">"1">微信号</option>
<option value=<span class="hljs-string">"2"><span class="hljs-type">QQ号</option>
<option value=<span class="hljs-string">"3"><span class="hljs-type">Email</option>
</select>
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-cell_vcode">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__hd"><label <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-label">验证码</label></div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"text" placeholder=<span class="hljs-string">"请输入验证码" />
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<img <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-vcode-img"src=<span class="hljs-string">"vcode.png" />
</div>
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-btn-area">
<a <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-btn weui-btn_primary" href=<span class="hljs-string">"javascript:" id=<span class="hljs-string">"showTooltips">确定</a>
</div>
</div>
</div>
</div>
</body>
</html></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>我们用google浏览器的移动端模式测试效果如下:</p>
<p><img src="https://img2018.cnblogs.com/blog/157572/201905/157572-20190528112417183-49429317.png"></p>
<p><strong>代码讲解</strong></p>
<p>(1)网页上面的<code><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"></code>这一句必须要有,这个和WeUI无关,是浏览器的显示比例问题。建议各位准备做移动端开发之前可以百度下viewport的含义,这样更容易理解响应式。加这一句是告诉浏览器在不同的设备上面的显示比例问题。</p>
<p>(2)最外面必须要有一个大的容器div,即上述代码里面的</p>
<p>这个标签;页面的所有标签必须放在这个里面;</p>
<p>(3)上述代码里面的radio和checkbox的效果是可以切换的。比如上述代码改下可以将性别这一项变成多选选,爱好这一项变成单选,你只需要将radio和checkbox切换即可。</p>
<h2 id="scroller-5">4、其他基础组件展示</h2>
<h3 id="scroller-6">4.1、switch开关</h3>
<pre><code class="hljs scala"><div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"container" id=<span class="hljs-string">"container">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"page navbar js_show">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"page__bd">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells__title">开关</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cells weui-cells_form">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-cell_switch">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">是否显示</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<input <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-switch" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"checkbox" />
</div>
</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell weui-cell_switch">
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__bd">是否置顶(兼容<span class="hljs-type">IE浏览器写法)</div>
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-cell__ft">
<label <span class="hljs-keyword">for=<span class="hljs-string">"switchCP" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-switch-cp">
<input id=<span class="hljs-string">"switchCP" <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-switch-cp__input" <span class="hljs-class"><span class="hljs-keyword">type=<span class="hljs-string">"checkbox" checked=<span class="hljs-string">"checked" />
<div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"weui-switch-cp__box"></div>
</label>
</div>
</div>
</div>
</div>
</div>
</div></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><img src="https://img2018.cnblogs.com/blog/157572/201905/157572-20190528112433038-129684652.png"></p>
<h3 id="scroller-7">4.2、文本框搜索组件</h3>
<pre><code class="hljs xml"><span class="hljs-meta"><!DOCTYPE html>
<span class="hljs-tag"><<span class="hljs-name">html <span class="hljs-attr">lang=<span class="hljs-string">"zh-cmn-Hans">
<span class="hljs-tag"><<span class="hljs-name">head>
<span class="hljs-tag"><<span class="hljs-name">meta <span class="hljs-attr">charset=<span class="hljs-string">"UTF-8">
<span class="hljs-tag"><<span class="hljs-name">meta <span class="hljs-attr">name=<span class="hljs-string">"viewport" <span class="hljs-attr">content=<span class="hljs-string">"width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
<span class="hljs-tag"><<span class="hljs-name">title>WeUI测试<span class="hljs-tag"></<span class="hljs-name">title>
<span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" <span class="hljs-attr">href=<span class="hljs-string">"/Content/weui-master/dist/style/weui.css" />
@*<span class="hljs-tag"><<span class="hljs-name">--example.css可以不引用-->*@
<span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" <span class="hljs-attr">href=<span class="hljs-string">"/Content/weui-master/dist/example/example.css" />
<span class="hljs-tag"></<span class="hljs-name">head>
<span class="hljs-tag"><<span class="hljs-name">body>
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"container" <span class="hljs-attr">id=<span class="hljs-string">"container">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page navbar js_show">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page__bd">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar" <span class="hljs-attr">id=<span class="hljs-string">"searchBar">
<span class="hljs-tag"><<span class="hljs-name">form <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar__form" <span class="hljs-attr">onsubmit=<span class="hljs-string">"return false;">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar__box">
<span class="hljs-tag"><<span class="hljs-name">i <span class="hljs-attr">class=<span class="hljs-string">"weui-icon-search"><span class="hljs-tag"></<span class="hljs-name">i>
<span class="hljs-tag"><<span class="hljs-name">input <span class="hljs-attr">type=<span class="hljs-string">"search" <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar__input" <span class="hljs-attr">id=<span class="hljs-string">"searchInput" <span class="hljs-attr">placeholder=<span class="hljs-string">"搜索" <span class="hljs-attr">required />
<span class="hljs-tag"><<span class="hljs-name">a <span class="hljs-attr">href=<span class="hljs-string">"javascript:" <span class="hljs-attr">class=<span class="hljs-string">"weui-icon-clear" <span class="hljs-attr">id=<span class="hljs-string">"searchClear"><span class="hljs-tag"></<span class="hljs-name">a>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">label <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar__label" <span class="hljs-attr">id=<span class="hljs-string">"searchText">
<span class="hljs-tag"><<span class="hljs-name">i <span class="hljs-attr">class=<span class="hljs-string">"weui-icon-search"><span class="hljs-tag"></<span class="hljs-name">i>
<span class="hljs-tag"><<span class="hljs-name">span>搜索<span class="hljs-tag"></<span class="hljs-name">span>
<span class="hljs-tag"></<span class="hljs-name">label>
<span class="hljs-tag"></<span class="hljs-name">form>
<span class="hljs-tag"><<span class="hljs-name">a <span class="hljs-attr">href=<span class="hljs-string">"javascript:" <span class="hljs-attr">class=<span class="hljs-string">"weui-search-bar__cancel-btn" <span class="hljs-attr">id=<span class="hljs-string">"searchCancel">取消<span class="hljs-tag"></<span class="hljs-name">a>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-cells searchbar-result" <span class="hljs-attr">id=<span class="hljs-string">"searchResult">
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">src=<span class="hljs-string">"~/scripts/jquery-1.9.1.min.js"><span class="undefined"><span class="hljs-tag"></<span class="hljs-name">script>
<span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">type=<span class="hljs-string">"text/javascript"><span class="javascript">
$(<span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">){
<span class="hljs-keyword">var $searchBar = $(<span class="hljs-string">'#searchBar'),
$searchResult = $(<span class="hljs-string">'#searchResult'),
$searchText = $(<span class="hljs-string">'#searchText'),
$searchInput = $(<span class="hljs-string">'#searchInput'),
$searchClear = $(<span class="hljs-string">'#searchClear'),
$searchCancel = $(<span class="hljs-string">'#searchCancel');
<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">hideSearchResult(<span class="hljs-params">){
$searchResult.hide();
$searchInput.val(<span class="hljs-string">'');
}
<span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">cancelSearch(<span class="hljs-params">){
hideSearchResult();
$searchBar.removeClass(<span class="hljs-string">'weui-search-bar_focusing');
$searchText.show();
}
$searchText.on(<span class="hljs-string">'click', <span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">){
$searchBar.addClass(<span class="hljs-string">'weui-search-bar_focusing');
$searchInput.focus();
});
$searchInput
.on(<span class="hljs-string">'blur', <span class="hljs-function"><span class="hljs-keyword">function (<span class="hljs-params">) {
<span class="hljs-keyword">if(!<span class="hljs-keyword">this.value.length) cancelSearch();
}).on(<span class="hljs-string">'keydown', <span class="hljs-function"><span class="hljs-keyword">function (<span class="hljs-params">event) {
<span class="hljs-keyword">if (event.keyCode == <span class="hljs-number">13) {
alert(<span class="hljs-string">"执行搜索");
}
});
;
$searchClear.on(<span class="hljs-string">'click', <span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">){
hideSearchResult();
$searchInput.focus();
});
$searchCancel.on(<span class="hljs-string">'click', <span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">){
cancelSearch();
$searchInput.blur();
});
});
<span class="hljs-tag"></<span class="hljs-name">script>
<span class="hljs-tag"></<span class="hljs-name">body>
<span class="hljs-tag"></<span class="hljs-name">html></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><img src="http://doc.rdiframework.net/blog/gif/%E6%96%87%E6%9C%AC%E6%A1%86%E6%90%9C%E7%B4%A2%E7%BB%84%E4%BB%B6.gif"></p>
<h3 id="scroller-8">4.3、正在加载、暂无更多、查看更多效果</h3>
<pre><code class="hljs xml"><span class="hljs-meta"><!DOCTYPE html>
<span class="hljs-tag"><<span class="hljs-name">html <span class="hljs-attr">lang=<span class="hljs-string">"zh-cmn-Hans">
<span class="hljs-tag"><<span class="hljs-name">head>
<span class="hljs-tag"><<span class="hljs-name">meta <span class="hljs-attr">charset=<span class="hljs-string">"UTF-8">
<span class="hljs-tag"><<span class="hljs-name">meta <span class="hljs-attr">name=<span class="hljs-string">"viewport" <span class="hljs-attr">content=<span class="hljs-string">"width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
<span class="hljs-tag"><<span class="hljs-name">title>WeUI测试<span class="hljs-tag"></<span class="hljs-name">title>
<span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" <span class="hljs-attr">href=<span class="hljs-string">"/Content/weui-master/dist/style/weui.css" />
<span class="hljs-tag"></<span class="hljs-name">head>
<span class="hljs-tag"><<span class="hljs-name">body>
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"container" <span class="hljs-attr">id=<span class="hljs-string">"container">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page navbar js_show">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page__bd">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-loadmore">
<span class="hljs-tag"><<span class="hljs-name">i <span class="hljs-attr">class=<span class="hljs-string">"weui-loading"><span class="hljs-tag"></<span class="hljs-name">i>
<span class="hljs-tag"><<span class="hljs-name">span <span class="hljs-attr">class=<span class="hljs-string">"weui-loadmore__tips">正在加载<span class="hljs-tag"></<span class="hljs-name">span>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-loadmore weui-loadmore_line">
<span class="hljs-tag"><<span class="hljs-name">span <span class="hljs-attr">class=<span class="hljs-string">"weui-loadmore__tips">暂无数据<span class="hljs-tag"></<span class="hljs-name">span>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-panel__ft">
<span class="hljs-tag"><<span class="hljs-name">a <span class="hljs-attr">href=<span class="hljs-string">"#" <span class="hljs-attr">style=<span class="hljs-string">"border-bottom: 1px solid #e5e5e5;border-top: 1px solid #e5e5e5;" <span class="hljs-attr">class=<span class="hljs-string">"weui-cell weui-cell_access weui-cell_link">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-cell__bd" <span class="hljs-attr">style=<span class="hljs-string">"font-size:16px;">查看更多<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"><<span class="hljs-name">span <span class="hljs-attr">class=<span class="hljs-string">"weui-cell__ft"><span class="hljs-tag"></<span class="hljs-name">span>
<span class="hljs-tag"></<span class="hljs-name">a>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">body>
<span class="hljs-tag"></<span class="hljs-name">html></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><img src="http://doc.rdiframework.net/blog/gif/%E6%AD%A3%E5%9C%A8%E5%8A%A0%E8%BD%BD%E3%80%81%E6%9A%82%E6%97%A0%E6%9B%B4%E5%A4%9A%E3%80%81%E6%9F%A5%E7%9C%8B%E6%9B%B4%E5%A4%9A%E6%95%88%E6%9E%9C.gif"></p>
<h3 id="scroller-9">4.4、图片全屏预览</h3>
<p>首先引入必须的样式文件</p>
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" <span class="hljs-attr">href=<span class="hljs-string">"/Content/weui-master/dist/style/weui.css" />
<span class="hljs-tag"><<span class="hljs-name">link <span class="hljs-attr">href=<span class="hljs-string">"~/Content/jquery-weui-master/dist/css/jquery-weui.css" <span class="hljs-attr">rel=<span class="hljs-string">"stylesheet" /> </span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>在body最后面引入js</p>
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">src=<span class="hljs-string">"~/scripts/jquery-1.9.1.min.js"><span class="undefined"><span class="hljs-tag"></<span class="hljs-name">script>
<span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">src=<span class="hljs-string">"~/Content/jquery-weui-master/dist/js/jquery-weui.min.js"><span class="undefined"><span class="hljs-tag"></<span class="hljs-name">script>
<span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">src=<span class="hljs-string">"~/Content/jquery-weui-master/dist/js/swiper.js"><span class="undefined"><span class="hljs-tag"></<span class="hljs-name">script></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>需要说明的是这个效果需要jquery-weui.js组件的支持。你需要去down这个组件的dist目录,然后引用dist目录下面的swiper.js文件。这块有问题的可以单独留言。</p>
<p>引入相关的css与js文件之后,下面就可以开始着手写html了。</p>
<pre><code class="hljs javascript"><div <span class="hljs-class"><span class="hljs-keyword">class=<span class="hljs-string">"container" id=<span class="hljs-string">"container">
<span class="xml"><span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page navbar js_show">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"page__bd">
<span class="hljs-tag"><<span class="hljs-name">div <span class="hljs-attr">class=<span class="hljs-string">"weui-btn-area">
<span class="hljs-tag"><<span class="hljs-name">a <span class="hljs-attr">class=<span class="hljs-string">"weui-btn weui-btn_primary" <span class="hljs-attr">href=<span class="hljs-string">"javascript:" <span class="hljs-attr">id=<span class="hljs-string">"showQuery">浏览图片<span class="hljs-tag"></<span class="hljs-name">a>
<span class="hljs-tag"></<span class="hljs-name">div><span class="hljs-tag"></<span class="hljs-name">div>
<span class="hljs-tag"></<span class="hljs-name">div>
<<span class="hljs-regexp">/div></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>js代码初始化</p>
<pre><code class="hljs javascript">script type=<span class="hljs-string">"text/javascript">
<span class="hljs-keyword">var pb1 = $.photoBrowser({
<span class="hljs-attr">items: [
<span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-1.jpg",
<span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-2.jpg",
<span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-3.jpg"
]
});
$(<span class="hljs-string">'#showQuery').on(<span class="hljs-string">'click', <span class="hljs-function"><span class="hljs-keyword">function (<span class="hljs-params">) {
pb1.open();<span class="hljs-comment">//打开
});
<span class="xml"><span class="hljs-tag"></<span class="hljs-name">script></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><img src="http://doc.rdiframework.net/blog/gif/%E5%9B%BE%E7%89%87%E5%85%A8%E5%B1%8F%E9%A2%84%E8%A7%88.gif"></p>
<p>swiper组件还提供了带图片文字描述的效果,和PC端的焦点图效果一样一样的。我们将上述js代码稍作修改:</p>
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">script <span class="hljs-attr">type=<span class="hljs-string">"text/javascript"><span class="javascript">
<span class="hljs-keyword">var pb1 = $.photoBrowser({
<span class="hljs-attr">items: [
{
<span class="hljs-attr">image: <span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-1.jpg",
<span class="hljs-attr">caption: <span class="hljs-string">"文字描述1"
},
{
<span class="hljs-attr">image: <span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-2.jpg",
<span class="hljs-attr">caption: <span class="hljs-string">"文字描述2"
},
{
<span class="hljs-attr">image: <span class="hljs-string">"/Content/jquery-weui-master/dist/demos/images/swiper-3.jpg",
<span class="hljs-attr">caption: <span class="hljs-string">"文字描述3"
}
]
});
$(<span class="hljs-string">'#showQuery').on(<span class="hljs-string">'click', <span class="hljs-function"><span class="hljs-keyword">function (<span class="hljs-params">) {
pb1.open();<span class="hljs-comment">//打开
});
<span class="hljs-tag"></<span class="hljs-name">script></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><img src="http://doc.rdiframework.net/blog/gif/%E5%9B%BE%E7%89%87%E5%85%A8%E5%B1%8F%E9%A2%84%E8%A7%881.gif"></p>
<p>swiper组件的应用有很多可供参考的使用方式,大家可根据实际自行扩展。</p>
<h2 id="scroller-10">5、微信开发系列文章列表</h2>
<ul>
<li>
<p>微信公众号开发C#系列-1、微信公众平台注册</p>
</li>
<li>
<p>微信公众号开发C#系列-2、微信公众平台接入指南</p>
</li>
<li>
<p>微信公众号开发C#系列-3、搭建微信本地调试环境-借助花生壳实现内网穿透</p>
</li>
<li>
<p>微信公众号开发C#系列-4、获取接口调用凭证</p>
</li>
<li>
<p>微信公众号开发C#系列-5、用户和用户组管理-支持同步</p>
</li>
<li>
<p>微信公众号开发C#系列-6、消息管理-普通消息接受处理</p>
</li>
<li>
<p>微信公众号开发C#系列-7、消息管理-接收事件推送</p>
</li>
<li>
<p>微信公众号开发C#系列-8、自定义菜单及菜单响应事件的处理</p>
</li>
<li>
<p>微信公众号开发C#系列-9、多公众号集中管理</p>
</li>
<li>
<p>微信公众号开发C#系列-10、长链接转短链接</p>
</li>
<li>
<p>微信公众号开发C#系列-11、生成带参数二维码应用场景</p>
</li>
</ul><br><br>
来源:https://www.cnblogs.com/zhipeng007/p/11004676.html
頁:
[1]