使用jQueryMobile實(shí)現(xiàn)滑動(dòng)翻頁效果的方法
本文實(shí)例講述了使用jQueryMobile實(shí)現(xiàn)滑動(dòng)翻頁效果的方法。分享給大家供大家參考。具體分析如下:
滑動(dòng)手勢在移動(dòng)設(shè)備是很流行的,在移動(dòng)設(shè)備中滑動(dòng)翻頁中很常見
雖然這個(gè)功能可以在jQueryMobile中實(shí)現(xiàn),但是個(gè)人與之前一篇【jQuery手機(jī)瀏覽器中拖拽動(dòng)作的艱難性分析】中的觀點(diǎn)一致,由于這是在手機(jī)瀏覽器中瀏覽,而不是安卓的一個(gè)獨(dú)立APP,所以不要經(jīng)常除點(diǎn)擊以外的移動(dòng)設(shè)備手勢,以免跟手機(jī)瀏覽器與手機(jī)系統(tǒng)本身的手勢發(fā)生沖突。
那么,使用jQueryMobile實(shí)現(xiàn)滑動(dòng)翻頁的效果到底怎么做呢?
一、基本目標(biāo)
在手機(jī)瀏覽器中的jQueryMobile框架頁中現(xiàn)實(shí)滑動(dòng)手勢翻頁的功能,如下圖:

并且記錄當(dāng)前頁的頁數(shù),隨用戶滑動(dòng)而自動(dòng)增加與減少。
二、制作過程
關(guān)于JqueryMobile的界面怎么布置,不再細(xì)說,詳情請翻閱之前一篇【jQueryMobile之Helloworld與頁面切換的方法】
如下的代碼注釋,主要是敘述如何通過對(duì)JqueryMobile封裝好的滑動(dòng)手勢jQuery Mobile Swipeleft與jQuery Mobile Swiperight處理,來實(shí)現(xiàn)上面的頁面,W3C《jQuery Mobile Touch 事件》一文中對(duì)此的敘述是有問題的,實(shí)驗(yàn)代碼與給出的代碼并不一致:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>a</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<!-- 需要的文件不再多嘴 -->
<link rel="stylesheet" href="jqmobile/jquery.mobile-1.4.5.css">
<script src="jqmobile/jquery-1.11.1.js"></script>
<script src="jqmobile/jquery.mobile-1.4.5.js"></script>
</head>
<body>
<!-- 必須此頁命名,否則下面的jquerymobile滑動(dòng)手勢控制不到,不起作用 -->
<div data-role="page" data-position="fixed" data-fullscreen="true" id="mypage">
<div data-role="header" data-theme="b" data-tap-toggle = "false">
<h1>Title</h1>
</div>
<!-- html部分很簡單,就在content中布局4個(gè)圖層,其中div1一開始顯示,其余隱藏即好,之所以把“你好”二字設(shè)置得大大的,是由于jquerymobile的滑動(dòng)必須滑到圖層內(nèi)的非空白部分,即使你設(shè)置了width:100%; height:100% -->
<div data-role="content">
<div id="div1">
<h1>你好1</h1>
</div>
<div id="div2" style="display:none;">
<h1>你好2</h1>
</div>
<div id="div3" style="display:none;">
<h1>你好3</h1>
</div>
<div id="div4" style="display:none;">
<h1>你好4</h1>
</div>
<!-- 此乃記錄翻到那一頁的圖層,有一個(gè)名叫divnumber的行內(nèi)文本 -->
<div>
<span id="divnumber"></span><span>/4</span>
</div>
</div>
<div data-role="footer" data-position="fixed" data-fullscreen="true" data-theme="b" data-tap-toggle = "false">
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active ui-state-persist" data-icon="info">a</a></li>
<li><a href="#" target="_self" data-icon="grid">b</a></li>
<li><a href="#" target="_self" data-icon="star">c</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>
<script>
/* jquery部分,先定義一個(gè)記錄翻到多少頁的變量 */
var divnum=1;
/* 相當(dāng)于.innerhtml=""; jquery設(shè)置一個(gè)節(jié)點(diǎn)的值是需要這樣設(shè)定的 */
$("#divnumber").text(divnum)
/* 在#mypage頁面開啟觸控 */
$(document).on("pageinit","#mypage",function(){
/* 如果對(duì)div1的非空白部分向左滑,那么div1就隱藏,div2就顯示,同時(shí)頁面計(jì)數(shù)器+1,并更新divnumber這個(gè)行內(nèi)文本 */
$("#div1").on("swipeleft",function(){
$("#div1").hide("fast");
$("#div2").show("fast");
divnum=divnum+1;
$("#divnumber").text(divnum)
});
/* 如果對(duì)div2的非空白部分向右滑,那么div1就顯示,div2就隱藏,同時(shí)頁面計(jì)數(shù)器-1,并更新divnumber這個(gè)行內(nèi)文本 */
$("#div2").on("swiperight",function(){
$("#div1").show("fast");
$("#div2").hide("fast");
divnum=divnum-1;
$("#divnumber").text(divnum)
});
/* 如果對(duì)div2的非空白部分向左滑,那么div2就隱藏,div3就顯示,同時(shí)頁面計(jì)數(shù)器+1,并更新divnumber這個(gè)行內(nèi)文本,下面如此類推 */
$("#div2").on("swipeleft",function(){
$("#div2").hide("fast");
$("#div3").show("fast");
divnum=divnum+1;
$("#divnumber").text(divnum)
});
$("#div3").on("swiperight",function(){
$("#div2").show("fast");
$("#div3").hide("fast");
divnum=divnum-1;
$("#divnumber").text(divnum)
});
$("#div3").on("swipeleft",function(){
$("#div3").hide("fast");
$("#div4").show("fast");
divnum=divnum+1;
$("#divnumber").text(divnum)
});
$("#div4").on("swiperight",function(){
$("#div3").show("fast");
$("#div4").hide("fast");
divnum=divnum-1;
$("#divnumber").text(divnum)
});
});
</script>
請注意,div1沒有向右滑的手勢,因?yàn)檫@是第一頁,div4沒有向左滑的手勢,因?yàn)檫@是最后一頁。
希望本文所述對(duì)大家的jQueryMobile程序設(shè)計(jì)有所幫助。
- jQuery Mobile彈出窗、彈出層知識(shí)匯總
- jquery Mobile入門—多頁面切換示例學(xué)習(xí)
- jQuery Mobile開發(fā)中日期插件Mobiscroll使用說明
- jquery mobile動(dòng)態(tài)添加元素之后不能正確渲染解決方法說明
- 讓jQuery Mobile不顯示討厭loading界面的方法
- jquery mobile頁面跳轉(zhuǎn)后樣式丟失js失效的解決方法
- jquery Mobile入門—外部鏈接切換示例代碼
- jquery mobile changepage的三種傳參方法介紹
- Jquery Mobile 自定義按鈕圖標(biāo)
- jQueryMobile之Helloworld與頁面切換的方法
- jQueryMobile之窗體長內(nèi)容的缺陷與解決方法實(shí)例分析
相關(guān)文章
jQuery操作元素的內(nèi)容和樣式完整實(shí)例分析
這篇文章主要介紹了jQuery操作元素的內(nèi)容和樣式,結(jié)合完整實(shí)例形式分析了jquery針對(duì)頁面元素內(nèi)容與樣式相關(guān)操作技巧,需要的朋友可以參考下2020-01-01
jquery?ajax實(shí)現(xiàn)文件上傳提交的實(shí)戰(zhàn)步驟
今天項(xiàng)目中加了一個(gè)上傳文件的需求,我就搞了一下,下面這篇文章主要給大家介紹了關(guān)于jquery?ajax實(shí)現(xiàn)文件上傳提交的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
淺析JQuery UI Dialog的樣式設(shè)置問題
本篇文章主要是對(duì)JQuery中UI Dialog的樣式設(shè)置問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
在Web項(xiàng)目中引入Jquery插件報(bào)錯(cuò)的完美解決方案(圖解)
這篇文章主要介紹了在Web項(xiàng)目中引入Jquery插件報(bào)錯(cuò)的完美解決方案的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
JQuery設(shè)置文本框和密碼框得到焦點(diǎn)時(shí)的樣式
設(shè)置文本框和密碼框得到焦點(diǎn)時(shí)的樣式,通過jquery來實(shí)現(xiàn),需要注意的是中間用逗號(hào)隔開,感興趣的朋友可以參考下2013-08-08
Jquery組件easyUi實(shí)現(xiàn)表單驗(yàn)證示例
這篇文章主要為大家詳細(xì)介紹了Jquery插件easyUi實(shí)現(xiàn)表單驗(yàn)證的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
jQuery-App輸入框?qū)崿F(xiàn)實(shí)時(shí)搜索
這篇文章主要為大家詳細(xì)介紹了jQuery-App輸入框?qū)崿F(xiàn)實(shí)時(shí)搜索,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11

