javascript - 获取移动页面的比例

标签 javascript jquery-mobile

我有一个 jquery 移动页面,其元视口(viewport)设置如下:

<meta id="testViewport" name="viewport" content="width=device-width,height=device-height,minimum-scale=1,maximum-scale=1"/>

我的页面布局如下(已简化)

<div data-role="page" id="article1">
    <div data-role="content">
    //page 1 stuff
    </div>
</div>

      <div data-role='page' id='article2'>
    <div data-role='content'>
    //page 2 stuff
    </div>
</div>

我已成功在两个页面之间导航,并使用此脚本仅对第二页启用捏缩放缩放:

$(document).on('swipeleft', '.ui-page', function (event) { //swipe to plot
    if (event.handled !== true) // This will prevent event triggering more then once
    {
        var nextpage = $.mobile.activePage.next('[data-role="page"]');
        // swipe using id of next page if exists
        if (nextpage.length > 0) {
            $.mobile.changePage(nextpage, {
                transition: "slide",
                reverse: false
            }, true, true);
        }
        event.handled = true;
    }
    var mvp = document.getElementById('testViewport');
    mvp.setAttribute('content', "width=device-width,height=device-height,minimum-scale=1,maximum-scale=4");
    return false;
});

$(document).on('swiperight', '.ui-page', function (event) { //swipe to input
    if (event.handled !== true) // This will prevent event triggering more then once
    {
        var prevpage = $(this).prev('[data-role="page"]');
        if (prevpage.length > 0) {
            $.mobile.changePage(prevpage, {
                transition: "slide",
                reverse: true
            }, true, true);
        }
        event.handled = true;
    }
    var mvp = document.getElementById('testViewport');
    mvp.setAttribute('content', "width=device-width,height=device-height,minimum-scale=1,maximum-scale=1");
    return false;
});

一切正常,但如果第二页(“artice2”)的比例大于 1,我想禁用“滑动导航”(如果该术语不正确,请原谅),但我无法弄清楚如何获取页面比例的值。如果你看不出来,我对此很陌生......所以非常感谢示例。

最佳答案

您可以做的是在页面显示后保存屏幕的高度和宽度pagecontainershow。然后,在滑动上获取当前的高度和宽度。如果当前高度/宽度大于初始高度/宽度,则忽略滑动

/* vars */
var windowWidth, windowHeight, currentW, currentH;

$(document).on("pagecontainershow", function (e, data) {
    windowWidth = window.innerWidth;
    windowHeight = window.innerHeight;
}).on("swipeleft", "[data-role=page]", function (e) {
    currentW = window.innerWidth;
    currentH = window.innerHeight;
    if (currentW == windowWidth && currentH == windowHeight && $(this).next("[data-role=page]").length != 0) {
        $.mobile.pageContainer.pagecontainer("change", $(this).next("[data-role=page]"), {
            transition: "flip"
        });
    }
}).on("swiperight", "[data-role=page]", function (e) {
    currentW = window.innerWidth;
    currentH = window.innerHeight;
    if (currentW == windowWidth && currentH == windowHeight && $(this).prev("[data-role=page]").length != 0) {
        $.mobile.pageContainer.pagecontainer("change", $(this).prev("[data-role=page]"), {
            transition: "flip",
            reverse: true
        });
    }
});

Demo

关于javascript - 获取移动页面的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042770/

相关文章:

javascript - 无法从另一个 JavaScript 文件访问 JavaScript 对象

javascript - 数组链导致未定义

javascript - "var"全局定义的变量的范围是什么?

html - 在 JQuery 移动元素中使用不同大小的数据图标

jquery - 手机网站问题

javascript - 添加数组索引时返回未定义

javascript - 流联合类型不会出错

javascript - MediaElement.js 音频标签没有动态添加样式

android - 回到前台时应用程序卡住(Cordova 3 + jquery mobile)

jquery - 奇怪的 Jquery 移动问题