使用JQuery Mobile实现手机新闻浏览器
2014-02-14 15:48
363 查看
jQuery Mobile项目是jQuery项目下的在移动开发方面的又一力作,在本文中,笔者将带你一步步更深入学习使用jQuery Mobile框架去实现一个能在android手机上运行的新闻浏览器,这个新闻浏览器会读取Yahoo网站上以RSS方式提供的新闻。
<!-- Container page --> <div data-role="page" data-theme="b" id="containerPage"> . <!-- Content pages will go here --> </div>
其中,在这个div层中,使用了data-theme=“b”的属性,这个是jQuery Mobile预先为我们设置好的a,b,c,d,e5种风格属性,
其中这里使用的b风格,使用的是偏蓝色的风格体系,其他的4种风格体系如下所示:
• <div ... data-role="header" ... > • <div ... data-role="content" ... > • <div ... data-role="footer" ... >
下面我们看下具体的目录分类页的结构和代码,如下图:
<div data-role="header" id="hdrCategories" data-nobackbtn="true"> <h1>Categories</h1> <a id="buttonAddCategory" data-icon="plus" class="ui-btn-left" href="" data-role="button" data-inline="true">Add</a> </div> <div data-role="content" id="contentCategories"> <ul data-role="listview" data-split-icon="delete" data-split-theme="d" id="currentNews"></ul> </div> <div data-role="footer" id="ftrCategories"></div>
在上面的代码中,其中的data-nobackbn的值设置为true, 表明这里不需要设置一个返回的按钮。而我们在增加新闻分类的按钮中(<a id="buttonAddCategory" ...>)设置了data-icon的样式为plus,即代表这个按钮中会有一个加号,而样式ui-btn-left是设置按钮在header的左 边对齐,而在页脚部分我们则留空,在本文中不设置任何东西,而你当然可以设置一些象版权声明那样的文字。
我们再来学习中间部分id为 contentCategories的层,在这个层中,我们使用了jQuery Mobile中的分隔listview样式,即<ul data-role="listview”……/>部分,这是一个项目列表的形式呈现在用户面前,注意data-split-icon指定用了一个 样式为删除按钮的图作为分隔,可以看到,每一行都被划分为两个部分,左边部分是显示当前的新闻分类和最新一条新闻,右边是删除按钮。
增加分类的页面
下面给出的是增加一个新闻分类的页面代码:
<!-- Category Selection --> <div data-role="header" id="hdrSelect" data-nobackbtn="true"> <h1>Select</h1> </div> <div data-role="content" id="contentSelect"> <form id="form1"> <div id="categoryDiv" data-role="fieldcontain"> <select id="category" tabindex="2"> <option value=''>Select a Category</option> <option value='topstories'>Top Stories</option> <option value='us'>U.S.</option> <option value='world'>World</option> <option value='politics'>Politics</option> ... </select> </div> <a id="buttonGetCategory" href="" data-role="button" data-inline="true">Get Category</a> </form> </div> <div data-role="footer" id="ftrSelect"></div>
在这个页中,有一个表单form1,其中还包含了一个下拉选择菜单,菜单中列出了Yahoo站的常见新闻分类,以供用户选择。
新闻页
我们来看新闻页的框架代码如下:
<!-- News --> <div data-role="header" id="hdrNews" data-nobackbtn="true"> <h1>News</h1> <a id="buttonHdrShowCategories" data-icon="arrow-l" class="ui-btn-left" href="" data-role="button" data-inline="true">Back</a> </div> <div data-role="content" id="contentNews"></div> <div data-role="footer" id="ftrNews"> <a id="buttonFtrShowCategories" data-icon="arrow-l" class="ui-btn-left" href="" data-role="button" data-inline="true">Back to News Categories</a> </div>
在该代码段中,我们没有使用jQuery Mobile自带的回退按钮,而是自己实现了一个按钮(id为buttonHdrShowCategories),而其事件代码编写会在稍后的教程中讲 解。属性data-icon=“arrow-l”则使用了jQuery内置的按钮(详细的按钮列表见http://jquerymobile.com /demos/1.0a2/#docs/buttons/buttons-icons.html)。为了方便用户在移动设备中,当拖动到页面底部时,也能 够有返回的功能,因此也在页面底部同样设置了返回按钮。
<!-- Progress --> <div data-role="header" id="hdrProgress" data-nobackbtn="true"> <h1>Processing...</h1> </div> <div data-role="content" id="contentProgress"> <div align="CENTER"><h4>Please wait.</h4></div> <div align="CENTER"><img id="spin" src="img/wait.gif"/></div> </div> <div data-role="footer" id="ftrProgress"></div>
新闻内容页
关于新闻内容页的处理,将在本系列教程的第2部分给出说明。
如何显示这些页面
接下来,我们讨论下如何在一个单独的html页中,控制上述介绍的各个页面的显现和隐藏,方法是使用Javascript,代码如下:
</script>
可以看到,我们在Javascript中,用变量保存了各个层的id名称,如果要隐藏某个页面,只需要简单调用jQuery提供的方法hide()就可以了,比如,要隐藏目录页:
function hideCategories(){ hdrCategoriesVar.hide(); contentCategoriesVar.hide(); ftrCategoriesVar.hide(); }
同理,其余的各层,也是调用相同的代码进行隐藏,比如:
function hideSelect(){ hdrSelectVar.hide(); contentSelectVar.hide(); ftrSelectVar.hide(); } ... function hideNews(){ hdrNewsVar.hide(); contentNewsVar.hide(); ftrNewsVar.hide(); } ... function hideProgress(){ hdrProgressVar.hide(); contentProgressVar.hide(); ftrProgressVar.hide(); }
而为了显示某一层,只需要调用jQuery.show()方法即可,比如:
function showCategories(){ hideSelect(); hideProgress(); hideNews(); hdrCategoriesVar.show(); contentCategoriesVar.show(); ftrCategoriesVar.show(); }
当然,我们这个例子中实现的是在同一个页面中,使用多个不同的层的技术,然后在各层之间进行导航,jQuery Mobile也支持在不同的页面中实现导航,具体的请参考:jQuery的帮助文档(http://jquerymobile.com/demos /1.0a2/#docs/pages/docs-navmodel.html)
小结
在本文中,我们简单介绍了我们这个项目的结构和页面流程,并且复习了一些jQuery Mobile的基本用法,把页面的基本结构都设计好了,在下一篇教程中,将详细介绍jQuery Mobile和其他相关插件如何配合一起,先实现一个web版本的新闻浏览器。敬请关注我们后续的文章报道!
<!-- Container page --> <div data-role="page" data-theme="b" id="containerPage"> . <!-- Content pages will go here --> </div>
其中,在这个div层中,使用了data-theme=“b”的属性,这个是jQuery Mobile预先为我们设置好的a,b,c,d,e5种风格属性,
其中这里使用的b风格,使用的是偏蓝色的风格体系,其他的4种风格体系如下所示:
• <div ... data-role="header" ... > • <div ... data-role="content" ... > • <div ... data-role="footer" ... >
下面我们看下具体的目录分类页的结构和代码,如下图:
<div data-role="header" id="hdrCategories" data-nobackbtn="true"> <h1>Categories</h1> <a id="buttonAddCategory" data-icon="plus" class="ui-btn-left" href="" data-role="button" data-inline="true">Add</a> </div> <div data-role="content" id="contentCategories"> <ul data-role="listview" data-split-icon="delete" data-split-theme="d" id="currentNews"></ul> </div> <div data-role="footer" id="ftrCategories"></div>
在上面的代码中,其中的data-nobackbn的值设置为true, 表明这里不需要设置一个返回的按钮。而我们在增加新闻分类的按钮中(<a id="buttonAddCategory" ...>)设置了data-icon的样式为plus,即代表这个按钮中会有一个加号,而样式ui-btn-left是设置按钮在header的左 边对齐,而在页脚部分我们则留空,在本文中不设置任何东西,而你当然可以设置一些象版权声明那样的文字。
我们再来学习中间部分id为 contentCategories的层,在这个层中,我们使用了jQuery Mobile中的分隔listview样式,即<ul data-role="listview”……/>部分,这是一个项目列表的形式呈现在用户面前,注意data-split-icon指定用了一个 样式为删除按钮的图作为分隔,可以看到,每一行都被划分为两个部分,左边部分是显示当前的新闻分类和最新一条新闻,右边是删除按钮。
增加分类的页面
下面给出的是增加一个新闻分类的页面代码:
<!-- Category Selection --> <div data-role="header" id="hdrSelect" data-nobackbtn="true"> <h1>Select</h1> </div> <div data-role="content" id="contentSelect"> <form id="form1"> <div id="categoryDiv" data-role="fieldcontain"> <select id="category" tabindex="2"> <option value=''>Select a Category</option> <option value='topstories'>Top Stories</option> <option value='us'>U.S.</option> <option value='world'>World</option> <option value='politics'>Politics</option> ... </select> </div> <a id="buttonGetCategory" href="" data-role="button" data-inline="true">Get Category</a> </form> </div> <div data-role="footer" id="ftrSelect"></div>
在这个页中,有一个表单form1,其中还包含了一个下拉选择菜单,菜单中列出了Yahoo站的常见新闻分类,以供用户选择。
新闻页
我们来看新闻页的框架代码如下:
<!-- News --> <div data-role="header" id="hdrNews" data-nobackbtn="true"> <h1>News</h1> <a id="buttonHdrShowCategories" data-icon="arrow-l" class="ui-btn-left" href="" data-role="button" data-inline="true">Back</a> </div> <div data-role="content" id="contentNews"></div> <div data-role="footer" id="ftrNews"> <a id="buttonFtrShowCategories" data-icon="arrow-l" class="ui-btn-left" href="" data-role="button" data-inline="true">Back to News Categories</a> </div>
在该代码段中,我们没有使用jQuery Mobile自带的回退按钮,而是自己实现了一个按钮(id为buttonHdrShowCategories),而其事件代码编写会在稍后的教程中讲 解。属性data-icon=“arrow-l”则使用了jQuery内置的按钮(详细的按钮列表见http://jquerymobile.com /demos/1.0a2/#docs/buttons/buttons-icons.html)。为了方便用户在移动设备中,当拖动到页面底部时,也能 够有返回的功能,因此也在页面底部同样设置了返回按钮。
<!-- Progress --> <div data-role="header" id="hdrProgress" data-nobackbtn="true"> <h1>Processing...</h1> </div> <div data-role="content" id="contentProgress"> <div align="CENTER"><h4>Please wait.</h4></div> <div align="CENTER"><img id="spin" src="img/wait.gif"/></div> </div> <div data-role="footer" id="ftrProgress"></div>
新闻内容页
关于新闻内容页的处理,将在本系列教程的第2部分给出说明。
如何显示这些页面
接下来,我们讨论下如何在一个单独的html页中,控制上述介绍的各个页面的显现和隐藏,方法是使用Javascript,代码如下:
</script>
可以看到,我们在Javascript中,用变量保存了各个层的id名称,如果要隐藏某个页面,只需要简单调用jQuery提供的方法hide()就可以了,比如,要隐藏目录页:
function hideCategories(){ hdrCategoriesVar.hide(); contentCategoriesVar.hide(); ftrCategoriesVar.hide(); }
同理,其余的各层,也是调用相同的代码进行隐藏,比如:
function hideSelect(){ hdrSelectVar.hide(); contentSelectVar.hide(); ftrSelectVar.hide(); } ... function hideNews(){ hdrNewsVar.hide(); contentNewsVar.hide(); ftrNewsVar.hide(); } ... function hideProgress(){ hdrProgressVar.hide(); contentProgressVar.hide(); ftrProgressVar.hide(); }
而为了显示某一层,只需要调用jQuery.show()方法即可,比如:
function showCategories(){ hideSelect(); hideProgress(); hideNews(); hdrCategoriesVar.show(); contentCategoriesVar.show(); ftrCategoriesVar.show(); }
当然,我们这个例子中实现的是在同一个页面中,使用多个不同的层的技术,然后在各层之间进行导航,jQuery Mobile也支持在不同的页面中实现导航,具体的请参考:jQuery的帮助文档(http://jquerymobile.com/demos /1.0a2/#docs/pages/docs-navmodel.html)
小结
在本文中,我们简单介绍了我们这个项目的结构和页面流程,并且复习了一些jQuery Mobile的基本用法,把页面的基本结构都设计好了,在下一篇教程中,将详细介绍jQuery Mobile和其他相关插件如何配合一起,先实现一个web版本的新闻浏览器。敬请关注我们后续的文章报道!
相关文章推荐
- 使用JQuery Mobile实现手机新闻浏览器
- JQuery Mobile实现手机新闻浏览器(2)
- 用户从手机的浏览器访问www.baidu.com,看到的可能跟桌面PC电脑,是不太一样的网页效果,会更适合移动设备使用。请简要分析一下,实现这种网页区分显示的原因及技术原理。
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- 使用WebRTC实现电脑与手机通过浏览器进行视频通话
- 使用Servlet实现浏览器从服务器下载文件
- 使用火狐浏览器模仿手机浏览器,附浏览器HTTP_USER_AGENT汇总
- 使用Servlet实现文件下载的时候,避免浏览器自动打开文件
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- 使用 XUL 实现浏览器扩展,第 1 部分:使用用户界面特性创建一个 Firefox 浏览器扩展
- Android使用BroadcastReceiver实现手机开机之后显示画面的功能
- Android实现监听手机通话--仅供学习使用--
- 使用基于ThinkPHP3.2.3的ThinkAdmin创建手机电脑通用的表白墙(四)实现弹幕
- 【Android 界面效果17】Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- Android使用AsyncQueryHandler实现获取手机联系人功能
- Android手机平板两不误,使用Fragment实现兼容手机和平板的程序
- 通过Gulp使用Browsersync实现浏览器实时响应文件更改
- 手机浏览器中使用IScroll使click及a跳转事件无效
- 开发WAP站点之---使用PC电脑浏览器访问WAP手机站点
- HTML5 Web SQL实现简单的增删改查websql使用方法vue2.0使用websql实现浏览器存储