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

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

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

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

那么,使用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程序设计有所帮助。

时间: 2024-08-04 04:49:27

使用jQueryMobile实现滑动翻页效果的方法_jquery的相关文章

android ViewPager实现滑动翻页效果实例代码

实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.View; public class ReadViewPager extends ViewPager { public ReadV

Android提高篇之TabHost结合ViewFlipper实现tab滑动翻页特效

http://blog.csdn.net/tigoss/article/details/6891048 废话不多说,直接上图: 代码简洁,使用TabHost与ViewFlipper结合实现滑动翻页效果,支持tab背景图片自动切换.之前看到别人写的实现方法是重写TabHost,但是代码太繁琐,本文实现代码简单易懂,值得大家学习分享. 使用到的技术:TabHost. ViewFlipper. GestureDetector   源代码下载地址:http://download.csdn.net/det

ppt怎样制作翻页效果

  ppt制作翻页效果的方法: 首先我们打开PPT,准备好一个空白的文档 接下来绘制书页,自选图形--星与旗帜--波形,在空白页添加该图形之后,调整它的形状(控制黄色小图标拉到合适的形状).大小(不超过空白页的一半).背景色{米色:255 250 240}.边框{线型:3磅;颜色:橙色},如图: 接下来我们将绘制好的书页复制一份,拉到左边,然后180度旋转,这样我们就完成了序和第一页的绘制,同样的方法,我们将第三页和第四页也绘制好,并设置好叠放次序. 为了美观,我们绘制一下书的中轴线,首先我们在

ios开发 布局-大家好,探讨请教一个滑动翻页,蚂蜂窝的实现效果

问题描述 大家好,探讨请教一个滑动翻页,蚂蜂窝的实现效果 对于滑动翻页的效果,我认为是用scrollView实现的,里面显示效果的页面是webView,每次滑动webView头部下拉刷新效果变成上翻上一页(改变scrollView的contentOffSet),对于UI的实现我是这么认为的,我不知道有没有更好的方法,如果有,请指教,谢谢. 至于webView里面的内容,而且还有类似于tableViewCell的交互,其实还是网页上的链接,这才是重要的,我不清楚这个后台该如何实现,前端目前我有大概

Android滑动效果高级篇(七) 华丽翻页效果

本示例介绍翻页效果,借鉴参考[何明桂的小窝]的博客,效果图如下: 感兴趣的朋友,可以查看[参考推荐],原博客把原理和实现,已经讲得很清楚了,在此不再重复 本示例源码下载如下:http://download.csdn.net/detail/sunboy_2050/4247971

解析Android中实现滑动翻页之ViewFlipper的使用详解_Android

1)View切换的控件-ViewFlipper介绍 ViewFilpper类继承于ViewAnimator类.而ViewAnimator类继承于FrameLayout. 查看ViewAnimator类的源码可以看出此类的作用主要是为其中的View切换提供动画效果.该类有如下几个和动画相关的方法. setInAnimation:设置View进入屏幕时候使用的动画.该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的resourceID. setOut

android中图片翻页效果简单的实现方法_Android

复制代码 代码如下: public class PageWidget extends View {    private Bitmap foreImage;    private Bitmap bgImage;    private PointF touchPt;    private int screenWidth;    private int screenHeight;    private GradientDrawable shadowDrawableRL;    private Gra

一步步实现Viewpager卡片翻页效果_Android

这个CardStackViewpager的灵感来自Github上面的 FlippableStackView开源项目,而我想实现的效果方向上恰好与FlippableStackView相反,并且细节上也有些区别,详见下面的效果对比图: FlippableStackView运行效果图: CardStackViewpager运行效果图: 这里讲一个小插曲,自己尝试实现CardStackViewpager的过程中,由于一开始对PageTransformer的onTransform(View page, f

jQuery实现手机版页面翻页效果的简单实例_jquery

如下所示: var page = 1; var size = 6; var mark = 0; var url = "{pigcms{:U('Order/index', array('page'=>'d%'))}"; var commentTpl = '<div style="margin-top: 10px">\ <button data-oid="<order_id>" style="width: