HBuilder⼊门(4)编写⼀个登录页⾯
通过之前的介绍,我们应该对HTML5+ 有了⼀个较为直观的认识。但是正所谓“好记性不如烂笔头”,能够实际地做出⼀个页⾯才是最重要的。
接下来我们就来做⼀个最基本的页⾯:登录页⾯。
那我们先构思⼀下登录页⾯都需要什么内容:⽤户名,密码,登录按钮。如果你有⼀个得⼒的美⼯,我们还可以加上酷炫的美⼯设计。    HBuilder提供⼀组UI组件,请参看这⾥:。
对于⼀个熟悉web开发的⼈来说,上⾯的这些都太简单了,分分钟就可以搞定了。但是别忘了这是移动开发,与普通的浏览器应⽤还是有所不同。接下来我们来看看页⾯的布局应该怎么设计。
这⾥⼤家不要忘记⼀个原则,因为⽬前HTML5+ 的实现仅此⼀家(HBuilder),所以我们在实现各种功能的时候,⼀定要遵循HBuilder官⽅推荐的⽅法。
接下来我们从⼀个index.html开始。
HBuilder默认⽣成的index.html⾥的meta部分,只有viewport⼀个属性:
Html代码
1. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
其实这完全是不够的,我们还需要⼿动增加⼏个属性:
Html代码
1. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
2. <meta name="apple-mobile-web-app-capable" content="yes">
3. <meta name="apple-mobile-web-app-status-bar-style" content="black">
其次,我们要引⼊ mui 需要的 css,以及相应的 javascript ⽂件。
Html代码
1. <link rel="stylesheet" href="css/mui.min.css">
2. <script src="js/mui.min.js"></script>
3. <script src="js/app.js"></script>
如果你想问如果不⽤ mui 和默认的 app.js 可以吗?答案是肯定的。但是,你可能会遇到很多意想不到的问题。所以,对于⼀个界⾯组件mui 来说,个⼈如果你有强⼤的美⼯⼩伙伴,那么不⽤ mui 是完全可以的。但是 app.js ,还是最好⽤吧!
另外,按照官⽅的说法,尽量不要⽤ jquery等 js 类库,这会严重影响你的应⽤的速度。所以,请遵循官⽅的建议。其实在移动端现代浏览器上, jquery 也真的是可有可⽆了。
⾄此,HTML 的 head 部分就结束了。接着我们开始写body部分了。
按照官⽅的说法,页⾯中所有的内容都应该放⼊⼀个 div 中,并且这个 div 的class 应该是 "mui-content" --- 当然,这是你使⽤ mui 的时候。这⾥我们暂定会使⽤ mui 。
按照⼀般的⽅式,我们都会在窗⼝的底部加⼀个 copyright 之类的⽂字。按照标准的说法,我们需要有⼀个class="mui-bar mui-bar-tab" 的div,⽽且要注意:这个 mui-bar DIV ⼀定要放到 mui-content 之上。总之,最后的代码应该是这个样⼦:
Html代码
1. <body>
2.    <div class="mui-bar mui-bar-tab" >
3. 这是底部信息
4.    </div>
5.    <div class="mui-content">
6.
7.        </div>
8. <body>
上⾯的 mui-bar ⾥,⼜额外加了⼀些样式,⽤于控制⾼度,⼤家可以根据需要⾃⾏订制。
接下来,我们来放⼊⼀些 mui 的组件:输⼊框
Html代码
1. <div class="mui-content-padded" >
2.    <form class="mui-input-group">
3.        <div class="mui-input-row">
4.            <label>⽤户名</label>
5.            <input type="text" id="username" placeholder="⽤户名">
6.        </div>
7.        <div class="mui-input-row">
8.            <label>密码</label>
9.            <input type="password" id="userpassword" placeholder="密码">
10.        </div>
11.    </form>
12. </div>
13. <div >
14.    <button class="mui-btn mui-btn-primary" id="loginBtn">登录</button>
15.      <button class="mui-btn mui-btn-primary" id="regBtn">注册</button>
16. </div>
这⾥的输⼊框和button 按钮都是 mui 提供的组件。我使⽤了⼀些 margin 等属性控制了⼀下位置。个⼈觉得,输⼊框组件还好,按钮组件的样式就⽐较⼀般了。如果你有好的美⼯,还是⾃⼰打造好看的按钮⽐较好。
在 html 对象的命名上,也秉承了⼀贯的原则,⽤唯⼀的ID 来标⽰⼀个对象。总之,这个内容对于有web开发经验的⼈来说,没有什么特别的地⽅。
⾄于你想让输⼊框垂直居中,请⾃⾏查“如何让 div 垂直居中”,解决⽅案是⼀样的。
接下来就是重头戏了,登录按钮如何与服务器进⾏交互?按照web开发的理解,有这么⼏种选择:
1. 定义⼀个表单(form),点击登录按钮的时候提交到后台。后台处理完毕后,显⽰新的页⾯给前端。
2. 在登录按钮上绑定⼀个click⽅法。点击的时候,使⽤Ajax发送数据到后台,接受到数据后,前端页⾯更新。
对于⼀个⼿机应⽤,如果出现页⾯刷新,或者⼤⽩页这样的状态肯定是不好的体验。所以,在⼿机的HTML5开发中,我们绝对不会使⽤form 提交这样的东西的。可以肯定的说:我们只⽤ Ajax。
按照官⽅的说法,尽量不要使⽤JQuery,同时,也不要使⽤ onclick 这样的⽅式,取⽽代之应该使⽤的是绑定⼀个事件:
Js代码
1. ElementById("loginBtn").addEventListener('tap', function(){
2. 处理内容;当然肯定是ajax 了。
3. });
这个事件的名字叫 ”tap“,也就是点击屏幕的事件。
那好学的同学肯定会问有多少个事件可以⽤啊?请参看这⾥:。这是mui 提供的⼀个特性--- 就这个特性来说,你很难不⽤ mui 这个组件,毕竟你⾃⼰再实现⼀个的话,⼜要费不少事。
那我们把这个事件的代码写在哪⾥好呢?最开始,还是最后边?都不是。
按照官⽅的说法,我们应该写在 mui 组件和页⾯组件全部加载完毕后 ---  就如同 JQuery⼀样,mui 也有⼀个 ready 的⽅法:
Js代码
1. <script>
2.    mui.init();
3.    mui.plusReady(
4.        function() {
5. 这⾥写上刚才的事件绑定⽅法。
6.        }
7.    );
8. </script>
到了这⾥,画⾯的部分基本完事了,整个代码⼤概是这个样⼦:
Html代码
1. <html>
2.  <head>
3.    <meta charset="utf-8">
4.    <title>测试</title>
5.    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
6.    <meta name="apple-mobile-web-app-capable" content="yes">
7.    <meta name="apple-mobile-web-app-status-bar-style" content="black">
8.
9.    <link rel="stylesheet" href="css/mui.min.css">
10.    <script src="js/mui.min.js"></script>
11.    <script src="js/app.js"></script>
12.  </head>
13.  <body>
14.    <div class="mui-bar mui-bar-tab" >
15. 这是底部信息
16.    </div>
17.    <div class="mui-content-padded" >
18.      <form class="mui-input-group">
19.        <div class="mui-input-row">
20.            <label>⽤户名</label>
21.            <input type="text" id="username" placeholder="⽤户名">
22.        </div>
23.        <div class="mui-input-row">
24.            <label>密码</label>
25.            <input type="password" id="userpassword" placeholder="密码">
26.        </div>
27.      </form>
28.    </div>
29.    <div >
30.        <button class="mui-btn mui-btn-primary" id="loginBtn">登录</button>
31.          <button class="mui-btn mui-btn-primary" id="regBtn">注册</button>
32.    </div>
33.    <script>手机上可以打html与css的app
34.      mui.init();
35.      mui.plusReady(
36.        function() {
37.            ElementById("loginBtn").addEventListener('tap', function(){
38.                  alert("点击了登录按钮");
39.            });
40.        }
41.      );
42.    </script>
43.  </body>
44. </html>
这时,你可以把⼿机连接到电脑上,然后进⾏调试,就可以看到第⼀个登录的画⾯了。点击登录按钮,会弹出”点击了登录按钮“这个对话框。
对于mui,虽然你可以不使⽤mui 组件,但是⼀些基本的规则,例如 mui.init,mui.plusReady 这样的⽅法,还是要使⽤的。
另外,mui 的布局⽅案中没有垂直居中的⽅式(希望以后能增加上),虽然⽅式有很多,但是仍然推荐这个:
接下来,我们就要实现登录按钮通过ajax与后台进⾏交互。
由于这篇内容已经够多,将在下⼀篇⾥分享给⼤家。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。