使用jQueryMobile实现滑动翻页效果的方法


Posted in Javascript onFebruary 04, 2015

本文实例讲述了使用jQueryMobile实现滑动翻页效果的方法。分享给大家供大家参考。具体分析如下:

滑动手势在移动设备是很流行的,在移动设备中滑动翻页中很常见

虽然这个功能可以在jQueryMobile中实现,但是个人与之前一篇【jQuery手机浏览器中拖拽动作的艰难性分析】中的观点一致,由于这是在手机浏览器中浏览,而不是安卓的一个独立APP,所以不要经常除点击以外的移动设备手势,以免跟手机浏览器与手机系统本身的手势发生冲突。

那么,使用jQueryMobile实现滑动翻页的效果到底怎么做呢?

一、基本目标

在手机浏览器中的jQueryMobile框架页中现实滑动手势翻页的功能,如下图:

使用jQueryMobile实现滑动翻页效果的方法

并且记录当前页的页数,随用户滑动而自动增加与减少。

二、制作过程

关于JqueryMobile的界面怎么布置,不再细说,详情请翻阅之前一篇【jQueryMobile之Helloworld与页面切换的方法】

如下的代码注释,主要是叙述如何通过对JqueryMobile封装好的滑动手势jQuery Mobile Swipeleft与jQuery Mobile Swiperight处理,来实现上面的页面,W3C《jQuery Mobile Touch 事件》一文中对此的叙述是有问题的,实验代码与给出的代码并不一致:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<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滑动手势控制不到,不起作用 -->  

<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个图层,其中div1一开始显示,其余隐藏即好,之所以把“你好”二字设置得大大的,是由于jquerymobile的滑动必须滑到图层内的非空白部分,即使你设置了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>  

      <!-- 此乃记录翻到那一页的图层,有一个名叫divnumber的行内文本 -->  

      <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部分,先定义一个记录翻到多少页的变量 */  

    var divnum=1;  

    /* 相当于.innerhtml=""; jquery设置一个节点的值是需要这样设定的 */  

    $("#divnumber").text(divnum)  

    /* 在#mypage页面开启触控 */  

    $(document).on("pageinit","#mypage",function(){  

        /* 如果对div1的非空白部分向左滑,那么div1就隐藏,div2就显示,同时页面计数器+1,并更新divnumber这个行内文本 */  

        $("#div1").on("swipeleft",function(){  

             $("#div1").hide("fast");  

             $("#div2").show("fast");  

             divnum=divnum+1;  

             $("#divnumber").text(divnum)  

        });  

        /* 如果对div2的非空白部分向右滑,那么div1就显示,div2就隐藏,同时页面计数器-1,并更新divnumber这个行内文本 */  

         $("#div2").on("swiperight",function(){  

             $("#div1").show("fast");  

             $("#div2").hide("fast");  

             divnum=divnum-1;  

             $("#divnumber").text(divnum)  

        });  

        /* 如果对div2的非空白部分向左滑,那么div2就隐藏,div3就显示,同时页面计数器+1,并更新divnumber这个行内文本,下面如此类推 */  

        $("#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没有向右滑的手势,因为这是第一页,div4没有向左滑的手势,因为这是最后一页。

希望本文所述对大家的jQueryMobile程序设计有所帮助。

Javascript 相关文章推荐
JS 巧妙获取剪贴板数据 Excel数据的粘贴
Jul 09 Javascript
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
JS复制到剪贴板示例代码
Oct 30 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
Aug 03 Javascript
多种JQuery循环滚动文字图片效果代码
Jun 23 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 #Javascript
Javascript中实现trim()函数的两种方法
Feb 04 #Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
Feb 04 #Javascript
JavaScript检测实例属性, 原型属性
Feb 04 #Javascript
Jquery Ajax xmlhttp请求成功问题
Feb 04 #Javascript
js对字符的验证方法汇总
Feb 04 #Javascript
AngularJS内置指令
Feb 04 #Javascript
You might like
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
yii2安装详细流程
2018/05/23 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
PHP 裁剪图片
2021/03/09 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
python实现扫描日志关键字的示例
2018/04/28 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
python协程之动态添加任务的方法
2019/02/19 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Python如何获取文件路径/目录
2020/09/22 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
巴西本土电商平台:Americanas
2020/06/21 全球购物
外包公司软件测试工程师
2014/11/01 面试题
超市促销实习自我鉴定
2013/09/23 职场文书
大学毕业感言
2014/01/10 职场文书
乔迁宴答谢词
2014/01/21 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
学校运动会报道稿
2014/09/23 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
小学德育工作总结2015
2015/05/12 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
入党积极分子考察意见
2015/06/02 职场文书