使用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 相关文章推荐
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
JavaScript 正则表达式中global模式的特性
Feb 25 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
详解JavaScript常量定义
Jan 03 Javascript
jQuery创建及操作xml格式数据示例
May 26 jQuery
JavaScript错误处理操作实例详解
Jan 04 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
浅谈Vue的computed计算属性
Mar 21 Vue.js
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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP实现搜索相似图片
2015/09/22 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
webpack实用小功能介绍
2018/01/02 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
闭包在python中的应用之translate和maketrans用法详解
2014/08/27 Python
python与C互相调用的方法详解
2017/07/14 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
德国苹果商店:MacTrade
2020/05/18 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
学校爱国卫生月活动总结
2014/06/25 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
新入职员工工作总结
2015/10/15 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
MySql分区类型及创建分区的方法
2022/04/13 MySQL