带有滑动过渡的jQuery Mobile changePage [英] jQuery Mobile changePage with swipe transition

查看:74
本文介绍了带有滑动过渡的jQuery Mobile changePage的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在处理"swiperight"事件时,我似乎无法做出反向"滑动效果.因此,下面的代码可以正常工作,但是当我进行滑动"操作时,我希望下一页从左侧滑动而不是从右侧滑动.我确实搜索了文档,并将reverse: true添加为建议 a>进入"swiperight":

I can't seem to make the "reverse" slide effect while handling the "swiperight" event. So, the code below works fine but I would like when I make the "swiperight" that the next page would slide in from the left side and not right hand side. I did search the documentation and added the reverse: true as as it recomends in to the "swiperight":

$.mobile.changePage("#page"+nextPage, {transition : "slide", reverse:true});

但是这不能提供想要的效果.您能指出我在哪里做错了吗?

but this does not provide the wanted effect. Can you point out where am I doing it wrong?

我在 jsFiddle 上具有以下代码:

html :

<!DOCTYPE html>
<html>
<head>
    <title>jQuery Mobile Application</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>    
</head>

<body>
    <section id="page1" data-role="page">
        <header data-role="header"><h1>jQuery Mobile</h1></header>

        <div data-role="content" class="content">
            <p>First page!</p>
        </div>
        <footer data-role="footer"><h1>O'Reilly</h1></footer>
    </section>

    <section id="page2" data-role="page">
        <header data-role="header"><h1>jQuery Mobile</h1></header>

        <div data-role="content" class="content">
            <p>Second page!</p>
        </div>
        <footer data-role="footer"r><h1>O'Reilly</h1></footer>
    </section>

    <section id="page3" data-role="page">
        <header data-role="header"><h1>jQuery Mobile</h1></header>

        <div data-role="content" class="content">
            <p>Third page!</p>
        </div>
        <footer data-role="footer"><h1>O'Reilly</h1></footer>
    </section>    
</body>
</html>​

jQuery :

(function($) {
    var methods = {
        init : function(options) {
            var settings = {
                callback: function() {}
            };

            if ( options ) {
                $.extend( settings, options );
                }

            $(":jqmData(role='page')").each(function() {
                $(this).bind("swiperight", function() {
                    var nextPage = parseInt($(this).attr("id").split("page")[1]) - 1;
                    if (nextPage === 0) 
                        nextPage = 3;

                    $.mobile.changePage("#page"+nextPage, "slide");
                    });                        

                $(this).bind("swipeleft", function() {
                    var nextPage = parseInt($(this).attr("id").split("page")[1]) +1;
                    if (nextPage === 4) 
                        nextPage = 1;

                    $.mobile.changePage("#page"+nextPage, "slide");
                });
            })
        }
        }

    $.fn.initApp = function(method) {
        if ( methods[method] ) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } 
        else if ( typeof method === 'object' || ! method ) {
            return methods.init.apply( this, arguments );
        } 
        else {
            $.error( 'Method ' + method + ' does not exist' );
        }
    }
    })(jQuery);

$(document).ready(function(){
    $().initApp();
});
​

推荐答案

首先,您正在使用jQM的Alpha版本以及jQM 1.1.1所指的文档.我已经更新了您的jsfiddle以使用最新的jQM 1.2

OK first off you're using a Alpha version of jQM and the docs you are referring to a for jQM 1.1.1. I've updated your jsfiddle to use the latest jQM 1.2

并且我为反向滑动过渡添加了正确的语法

And I've added the correct syntax for the reverse swipe transition

$.mobile.changePage("#page"+nextPage, {
        transition: "slide",
        reverse: false
    });
});

和反向转换

$.mobile.changePage("#page"+nextPage, {
        transition: "slide",
        reverse: true
    });
}); 

这篇关于带有滑动过渡的jQuery Mobile changePage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆