如何使 jQuery Mobile 弹出窗口在设备全屏显示

4

我一直努力尝试在JQM中使弹窗全屏显示,但无法做到。

这是一个演示

代码如下:

HTML

<div data-role="page" id=""> <a href="#sql" id="opendialog" data-rel="popup" class="ui-btn ui-corner-all ui-shadow ui-btn-inline" data-transition="pop">Open Dialog</a>

    <div data-role="popup" id="sql" data-dismissible="false" style="max-width:100%">
        <div data-role="header" data-theme="a">
             <h1>Delete Page?</h1>

        </div>
        <div role="main" class="ui-content">
             <h3 class="ui-title">Are you sure you want to delete this page?</h3>

            <p>This action cannot be undone.</p> <a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back">Cancel</a>
 <a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back" data-transition="flow">Delete</a>

        </div>
    </div>
</div>

感谢并致以问候。

1
请检查此链接:http://jsfiddle.net/N2UYZ/1/ - Aravin
3个回答

13
  • CSS解决方案:

    这适用于任何弹出窗口。

.ui-popup-container, .ui-popup {
    height: 98%;
    width: 100%;
    position: absolute;
    top: 0;
    left:0;
}
  • JS解决方案:

    针对特定的弹出窗口。

  • $(document).on("pagecreate", "#pageID", function () {
        $("#sql").popup({
            beforeposition: function () {
                $(this).css({
                    width: window.innerWidth,
                    height: window.innerHeight - 14
                });
            },
            x: 0,
            y: 0
        });
    });
    

    演示


    2
    为了避免jQuery移动版弹出窗口默认的15像素填充,并将弹出窗口宽度设置为100%,同时不编写硬编码值,您可以执行以下操作:
    HTML:
    <div data-role="popup" id="sql" data-dismissible="false" data-tolerance="0"> 
    

    CSS:

    .ui-popup-container
    {
        width: 100%;
        height: 100%;
    }
    

    JavaScript:

    $(document).on("pagecreate", function (event, ui) {
        $("#sql").on("popupbeforeposition", popUpSql_OnBeforePosition);
    });
    
    function popUpSql_OnBeforePosition(event, ui) {
        var horizSpacing = 5;
        var vertSpacing = 5;
        var horizPaddingBorderSize = $(this).outerWidth() - $(this).width();
        var vertPaddingBorderSize = $(this).outerHeight() - $(this).height();
    
        $(this).css({
            left: horizSpacing,
            top: vertSpacing,
            width: window.innerWidth - (horizSpacing * 2) - horizPaddingBorderSize,
            height: window.innerHeight - (vertSpacing * 2) - vertPaddingBorderSize
        });
    }
    

    这段代码还可以让你改变弹出框的水平和垂直间距,让阴影边框更加明显。 JSFiddle

    0
    这段代码向 jQuery 源代码中定义的小部件 mobile.popup 添加了一个名为“setText”的新方法。使用它来更改弹出窗口的内容。弹出窗口将自动居中于窗口。
    <div data-role="popup" id="popup-info"  data-theme="b" class="ui-content" >
        <a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-left">Fermer</a>
        <div id="content"></div>
    </div>    
    
    <script>
    (function($) {
        $.widget( "mobile.popup", $.mobile.popup, {
            setText: function(_text) {
                container=this.element.find('div:first');
                if(container!==undefined){
                    container.html(_text);
                }else{
                    this.element.html(_text);
                }
                var newX = parseInt(($(window).width()-this._ui.container.width())/2);      
                var newY = parseInt(($(window).height()-this._ui.container.height())/2);        
                this.reposition( {x:newX,y:newY,positionTo:'window'}  );
            }
        });     
    })(jQuery);
    
    $('#popup-info').popup('setText',str);
    </script>
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接