【初探移动前端开发03】jQuery Mobile(上)

前言

到目前为止,我打了几天酱油了,这几天落实了工作,并且看了一部电视连续剧(陈道明-手机),我很少看连续剧了,但是手机质量很高啊,各位可以看看。

我们今天先学习一下jquery mobile的基础知识,然后逐步进入移动开发吧。

我们这里再来看看响应式布局,我们是一个页面可以在不同的设备上使用,其实这在某些方面上是不太合适的。

因为我们移动端的事件不太一致,可能鼠标操作很方便的,用手就不行了,所以为移动端出单独的网页还是很有必要的。

文中测试链接请使用手机打开。

什么是jQuery Mobile?

jquery mobile是jquery在移动设备上的版本,他是基于jquery、HTML5、CSS3构建的,他提供了一个丰富的交互性强的接口用以兼容不同移动平台。

于是我们去下载一番:



我这里就直接下载的这个压缩文件了,完了我们看看他有些什么东西,我们这个还是要依赖jquery的,所以还是准备一个吧。

这个东东是个好东西哦,他还有配套的样式呢,依赖他我们可以开发一套不错的手机应用呢。

自定义属性

在jquery mobile中,是使用自定义属性驱动页面的(data-....),比如:

data-role

定义元素在页面中的角色,该属性允许定义不同的组件元素及页面视图:data-role="page"

data-title

定义jquery mobile视图页面标题

data-transition

定义视图切换的动画效果

data-rel

定义具有浮动效果的视图

data-theme

指定元素或者组件内主题样式风格

data-icon

在元素内增加小图标

data-iconpos

定义小图标位置

data-inline

指定按钮根据内容自适应其长度

data-type

定义分组按钮水平或者垂直方向排布

data-rel

定义具有特定功能的元素,例如data-rel="back"返回按钮

data-add-back-btn

指定视图页面自动在页眉左侧添加返回按钮

data-back-btn-text

指定由石头页面自动创建的返回按钮的文本内容,该属性的使用通常都需要和data-add-back-btn配合

data-position

该属性是实现在滑动屏幕时工具栏的显示和隐藏状态

data-fullscreen

用于指定全屏视图页面

data-native-menu

指定下拉选择功能采用平台内置的选择器

data-placeholder

设置下拉选择功能的占位符

data-inset

实现内嵌列表功能

data-split-theme

设置列表右侧图标的主题样式风格

data-filter

开启列表过滤功能

搞了这么多自定义属性,我们也不知道什么是什么,所以不如来试一试吧。

页面与视图

页面与视图作为移动web应用程序最重要的用户界面之一,他主要承担整个web应用程序的界面呈现工作。

jquery mobile提供一套自定义元素属性用于搭建各种页面和视图。

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link href="jquery.mobile-1.3.1.css" rel="stylesheet" type="text/css" />
7     <script src="jquery-1.7.1.js" type="text/javascript"></script>
8     <script src="jquery.mobile-1.3.1.js" type="text/javascript"></script>
9 </head>
10 <body>
11     <div data-role="page">
12         <div data-role="header">页头
13         </div>
14         <div data-role="content">内容
15         </div>
16         <div data-role="footer">页脚
17         </div>
18     </div>
19 </body>
20 </html>
复制代码
http://sandbox.runjs.cn/show/itndsvbq



不要说还是有点感觉的。。。

我们在实例中使用div元素作为视图页面的布局元素但是我们这里改为html的元素更加好:

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
7     <script id="jquery_182" type="text/javascript" class="library" 
src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
8     <script id="jquerymobile_120" type="text/javascript" class="library" 
src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
9 </head>
10 <body>
11     <section data-role="page">
12         <header data-role="header">页头
13         </header>
14         <article data-role="content">内容
15         </article>
16         <footer data-role="footer">页脚
17         </footer>
18     </section>
19 </body>
20 </html>
复制代码
多视图web页面

前面只有一个视图,我们现在来看看多视图页面怎么处理:

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14     <section data-role="page" id="v1">
15         <header data-role="header">视图一
16         </header>
17         <article data-role="content">
18             <a href="#v2">去视图二</a>
19         </article>
20         <footer data-role="footer">页脚
21         </footer>
22     </section>
23      <section data-role="page" id="v2">
24         <header data-role="header">视图二
25         </header>
26         <article data-role="content">
27             <a href="#v1">去视图1</a>
28         </article>
29         <footer data-role="footer">页脚
30         </footer>
31     </section>
32 </body>
33 </html>
复制代码
http://sandbox.runjs.cn/show/l4vejd6v



我们点击超链接可以在视图一与视图二切换,你会发现还有一点点动画效果呢!!!

PS:在此若是设置了data-title将改变手机上title的标题

动画

我们可以设置6钟动画效果:

复制代码
① Slide 从右到左切换
② Slideup 从下到上切换
③ Slidedown 从上到下切换
④ Pop弹出框方式打开
⑤ Fade 渐变褪色方式
⑥ Flip飞入飞出方式
复制代码
这里我就不截图了,我私下试试去。

<a href="#v1" data-transition="pop">去视图1</a>
效果感觉不错哦!!!

dialog对话框

只要在标签的data-rel设置了dialog属性,视图就具有dialog浮动层效果。

<a href="#v2" data-rel="dialog">去视图二</a>


这里有点表现不佳,我们暂时不管他。

页面主题

<section data-role="page" id="v1" data-theme="a">
关于自定义属性的东西暂时写到这里,我们来看看我们比较重要的按钮。

按钮

按钮在移动web应用程序中式非常重要的用户界面组件,主要用作为用户提供各种操作入口和视图交互功能,我们的jquery mobile提供了很多不错的按钮。

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14   <div data-role="button">我是按钮</div>
15 </body>
16 </html>
复制代码


于是我们的按钮就出现啦,在页面上独占一行。

input 中button、submit等也都变成了这个样式了

小图标

jquery mobile提供了一套小图标:



图标太多,我这里简单列两个:

delete:删除,data-icon="delete"

plus:加号,data-icon="plus"

PS:设置data-iconpos="notext"便可以只要图标不要文字

1   <div data-role="button" data-icon="delete">删除</div>
2   <div data-role="button" data-icon="delete" data-iconpos="notext">删除</div>
3   <div data-role="button" data-icon="delete" data-iconpos="right">删除</div>
http://sandbox.runjs.cn/show/xd9axexu



若是系统提供的图标不能满足条件的话,便可以自定义图标

data-icon="myapp-email"
myapp-email就是自定义图标的名称(需要上传)
css中对应的样式是.ui-icon-myapp-email
自定义图标大小是18*18,建议png-8
按钮分组

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14     <div data-role="controlgroup" data-type="horizontal">
15         <div data-role="button" data-icon="plus">
16             添加</div>
17         <div data-role="button" data-icon="delete">
18             删除</div>
19         <div data-role="button" data-icon="refresh">
20             修改</div>
21     </div>
22     <div data-role="controlgroup" data-type="horizontal">
23         <div data-role="button" data-icon="plus">
24             添加</div>
25         <div data-role="button" data-icon="delete">
26             删除</div>
27         <div data-role="button" data-icon="refresh">
28             修改</div>
29     </div>
30 </body>
31 </html>
复制代码
http://sandbox.runjs.cn/show/u7cydmrv



感觉还不错的说,这里还可以为各个按钮设置主题,看起来就更加有分别了。

Bar 工具栏

工具栏也是一重要组件,我们这里结合前面的按钮来完成一完整的工具栏。

jquery mobile提供两组工具栏:

Headers bar
充当视图页面的标题作用,在一般情况下header bar位于页面的顶部,一般包含2按钮
Footer bar
这个工具栏一般位于尾部,就是与header bar对应的东东
初体验:

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14 <div data-role="page">
15   <header data-role="header">
16     <h1>header bar</h1>
17   </header>
18   <div>内容区域</div>
19   <footer data-role="footer">
20     <h2>footer bar</h2>
21   </footer>
22 </div>
23 </body>
24 </html>
复制代码


我们在此基础上改下:

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14 <div data-role="page">
15   <header data-role="header">
16     <h1>header bar</h1>
17   </header>
18   <div>内容区域</div>
19   <footer data-role="footer">
20     <div data-role="controlgroup" data-type="horizontal" >
21         <div data-role="button" data-icon="plus" data-theme="a">
22             添加</div>
23         <div data-role="button" data-icon="delete" data-theme="b">
24             删除</div>
25         <div data-role="button" data-icon="refresh" data-theme="c">
26             修改</div>
27     </div>
28   </footer>
29 </div>
30 </body>
31 </html>
复制代码
http://sandbox.runjs.cn/show/icqp5f8v



导航工具条

navbar是非常有用的,他提供不同数量的按钮组合,一般位于header或者footer中

复制代码
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <title></title>
5     <meta name="viewport" content="width=device-width, initial-scale=1">
6     <link id="jquerymobile_120" rel="stylesheet" type="text/css" class="library" 
7     href="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.css">
8     <script id="jquery_182" type="text/javascript" class="library" 
9     src="/js/sandbox/jquery/jquery-1.8.2.min.js"></script>
10     <script id="jquerymobile_120" type="text/javascript" class="library" 
11     src="/js/sandbox/jquery-mobile/jquery.mobile-1.2.0/jquery.mobile-1.2.0.min.js"></script>
12 </head>
13 <body>
14 <div data-role="page">
15   <header data-role="header">
16     <h1>header bar</h1>
17   </header>
18   <div>内容区域</div>
19   <footer data-role="footer">
20     <nav data-role="navbar">
21         <ul>
22             <li>
23                 <a href="#" class="ul-btn-active" data-icon="home">主页</a>
24             </li>
25             <li>
26                 <a href="#"  data-icon="search">查找</a>
27             </li>
28             <li>
29                 <a href="#"  data-icon="info">信息</a>
30             </li>
31         </ul>
32     </nav>
33   </footer>
34 </div>
35 
36 </body>
37 </html>
复制代码
http://sandbox.runjs.cn/show/pwbcm0mo



各位感觉还行吧。。。

fixed工具栏

这个家伙提供后,我们在轻触屏幕或者滑动屏幕时,header和footer都会出现或者消失

<header data-role="header" data-position="fixed">
结语

我们今天暂时学到这里,明天再继续吧。




本文转自叶小钗博客园博客,原文链接:http://www.cnblogs.com/yexiaochai/p/3186550.html如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git Bash的一些命令和配置

查看git版本号&#xff1a; git --version 如果是第一次使用Git&#xff0c;你需要设置署名和邮箱&#xff1a; $ git config --global user.name "用户名" $ git config --global user.email "电子邮箱" 检查你的设置 $ git config --list 或单独检查一项…

/dev/null 文件

/dev/null 文件 如果希望执行某个命令&#xff0c;但又不希望在屏幕上显示输出结果&#xff0c;那么可以将输出重定向到 /dev/null&#xff1a; $ command > /dev/null /dev/null 是一个特殊的文件&#xff0c;写入到它的内容都会被丢弃&#xff1b;如果尝试从该文件读取内容…

C语言试题190之实现函数在第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数目

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现函…

强大的多列 IN 查询语句,及数据库支持情况。

SQL 中最强大的也是最复杂的就是查询部分。在需要查询多条记录时我们一般会采用 in 关键字来指定要查询的条件&#xff1a;SELECT * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果对应的数据需要两个或更多字段才能确定&#xff0c;可能会写出以下的 SQL 语句&#xff…

ArcGIS实验教程——实验四十二:ArcGIS密度分析(核密度、点密度、线密度)

文章目录 一、密度分析原理二、点密度分析三、线密度分析四、核密度分析一、密度分析原理 密度分析是指根据输入的要素数据集计算整个区域的数据聚集状况,从而产生一个联系的密度表面。通过密度计算,将每个采样点的值散步到整个研究区域,并获得输出栅格中每个像元的密度值。…

Log4Net的WebApplication使用

一、Log4Net的WebApplication使用 1、首先使用nuget 添加log4Net 到WebApplication项目中 log4j每个符号的具体含义&#xff1a;%d %5p %c{1}:%L - %m%n log4j.properties# %m 输出代码中指定的消息# %p 输出优先级&#xff0c;即DEBUG&#xff0c;INFO&#xff0c;WARN&…

C语言试题191之实现strcat函数功能

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…

eclipse启动tomcat无法访问

症状&#xff1a; tomcat在eclipse里面能正常启动&#xff0c;而在浏览器中访问http://localhost:8080/不能访问&#xff0c;且报404错误。同时其他项目页面也不能访问。 关闭eclipse里面的tomcat&#xff0c;在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt:…

[转]IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了!

头图&作者 | YourBatman&#xff0c;CSDN博客专家 责编 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 前言 千呼万唤始出来&#xff01;自从官方在 2020-01-20 发布了其 2020 年的 Roadmap 后&#xff0c;我便持续关注着、期待着 JetBrains Intell…

【ArcGIS遇上Python】ArcGIS批量为多个矢量图层添加一个或多个字段(Add Field)案例实现

多个人在利用ArcGIS做数字化之后,需要批量为多个图层添加一个或者多个相同的字段,挨个手动添加字段显然不可取。ArcGIS Python提供了快速高效的批量添加字段的解决方案。本文以土地利用数据(Landuse1和Landuse2)为例,采用简单的Python代码实现了文中两个矢量图层批量添加字…

可下载!Vue3+.NET6实战系列:通用管理后台

.NET Framework停更3年&#xff0c;4月份还又停止了3个版本支持&#xff0c;居然还有人没怎么接触.NET跨平台&#xff01;真的该好好学下.NET6了&#xff0c;已经是不得不学了&#xff01;好好看下这套《Vue3.NET6前后端分离电商实战》免费教程&#xff0c;完整的源码视频课件全…

C语言试题192之实现strchr函数功能

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…

简单团队-爬取豆瓣电影TOP250-需求分析

1.实现登录界面 2.搜集相关电影网址 3..按照一定条件爬取电影&#xff0c;实现相关代码部分 项目步骤&#xff1a; 分析豆瓣电影TOP250的url规则, 编写模块获取相关url分析html中有关"排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息"的标签编写将"搜集…

一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题!...

背景&#xff1a; 吃饭前&#xff0c;想起了<甄嬛传>中皇弟叹息的一句&#xff1a;千军易得&#xff0c;良将难寻&#xff01; 又逢CTO群里有友人让我帮忙评估其公司的项目及技术&#xff0c;一番review code&#xff0c;估计要写那代码的人要落岗了~ 不由想起&#xff0…

对软件工程这门课的收获与总结

转眼间八周已经过去&#xff0c;《现代软件工程》这门课程也在这周结束了。在宋老师的教导下&#xff0c;以及在个人项目以及团队项目的参与中我确实收获了许多。我觉得我有必要将这八周所获得的经验也好&#xff0c;教训也好都记录下来&#xff0c;相信这也会对未来的自己有所…

[转]C++二进制完成加减乘除

首先介绍计算机的二进制码 二进制常用的有原码&#xff0c;反码和补码&#xff0c;他们都是由最左边的一个符号位和右边的数值位构成。在计算机中为了更低成本的计算&#xff0c;数据都是用补码来存储和运算的。 原码 最高位表示符号位&#xff08;0代表正数&#xff0c;1代…

WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换案例教程(附转换工具下载)

在做基于百度地图、高德地图等电子地图做为地图服务的二次开发时,通常需要将具有WGS84等坐标的矢量数据(如行政区划、地名、河流、道路等GIS地理空间数据)添加到地图上面,然而,在线地图大多使用的是火星坐标系,需要事先将矢量数据转为火星坐标系。本文以案例的形式,讲述…

.NET 6 AssemblyLoadContext DLL 库 热插拔逻辑实现

曾经也实现过.Net Framework 基于AppDomain 的 dll库热插拔&#xff0c;经历了版本的迭代&#xff0c;.Net Core 不支持 AppDomain&#xff0c;之前也搞过.Net Core 3.1 版本的&#xff0c;现在搞一下子.NET 6.0的。热插拔运用的场景主要运用到宿主与插件这个场景或者动态任务的…

C语言试题193之实现strcmp函数功能

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…

浅谈Java多线程同步机制之同步块(方法)——synchronized

在多线程访问的时候&#xff0c;同一时刻只能有一个线程能够用 synchronized 修饰的方法或者代码块&#xff0c;解决了资源共享。下面代码示意三个窗口购5张火车票&#xff1a; 1 package com.jikexueyuan.thread;2 /*3 * 未使用synchronized&#xff0c;存在并发4 */5 class…