【问题标题】:popup disappear for few seconds in android chrome browser when scrolling滚动时弹出窗口在android chrome浏览器中消失几秒钟
【发布时间】:2017-02-08 11:16:13
【问题描述】:

我有一个对话框,它是作为弹出窗口制作的,但是每当我在带有 chrome 浏览器的 Android 设备上滚动时,它就会消失几秒钟才重新出现。

对话框包含一个用户需要填写的 HTML 表单,但数据确实保留在表单中。

我查看了整个 JqueryMobiles 论坛,他们说这是因为调整大小事件,但我找不到解决方法。

谁能帮忙?

CSS 代码:

div.standarddialog {
max-width:400px;
position:relative !important;
}

HTML 代码:

div data-role="popup" id="receiptUploadFileDialog" data-overlay-theme="b"
 data-theme="a" class="standarddialog" data-history="false">
<div data-role="header" class="ui-corner-top">
    <h1>Import</h1>
</div>
@* The main part of the dialog box *@
<div data-role="content" class="ui-corner-bottom ui-content">
    <p>Import file</p>
    @* The form where the user can define the variables *@
    <form method="post" enctype="multipart/form-data"
          data-ajax="false" target="receiptTargetUploadFile" id="receiptUploadFileForm" data-bind="attr: { action: model.uploadUrl }">      
        <input type="file" name="imgFile" accept="image/*" id="receiptUploadFileInput">   @* The image file input *@   
        Description <input type="text" name ="Description" id="desc"/>                  @* Description input *@   
        Exspense type: <select name="expType" id="expType">                             @* Expense Type as a dropdown menu, values taken from T03 *@   
                </select>
        Total: <input type="number" name="amount" id="amount" required><br>             @* The amount as input *@   
        Currency: <select name="currency" id="currency">                                @* The currency of the amount as a dropdown menu, values taken from A13 *@    
                </select> 
        Private expenses: <input type="checkbox" name="priExp" id="priExp"><br>         @* Private expense if the user paid with own money or company money *@   
        Comment: <input type="text" name="comment" id="comment"><br>                    @* Comment the user can define *@   
    </form>
    <p data-bind="text: model.validationText" class="validationError"></p>

    <a href="#" data-icon="arrow-u" data-role="button" data-iconpos="right" data-bind="click: $root.receiptSubmitUploadFileForm.bind($root)">Upload</a> @* Submit button when the user is done, filling in the inputs *@   
</div>

<iframe id="receiptTargetUploadFile" name="receiptTargetUploadFile" style="position:absolute; left:-999em; top:-999em;"></iframe>
<a href="#receiptUploadFileDialog" data-position-to="window" data-transition="pop"
   id="receiptInvisibleFileDialogOpener" data-role="button" data-rel="popup" style="visibility: hidden"></a>

Javascript:

 public receiptShowUploadFileForm(settings: FileUploadSettings): void {
    if (this.runSetup) {
        this.setupCurrency();
        this.setupExpType();
    }
    this.model.uploadUrl(settings.uploadUrl);
    this.model.validatePath = settings.validatePath;
    this.model.afterUpload = settings.afterUpload;
    this.model.validationText("");
    this.jqMap.btnInvisibleFileOpener.click();

    $("#receiptTargetUploadFile")[0].onload = () => {
        this.jqMap.fileImportDialog.popup().popup("close");

        if (this.model.afterUpload) {
            this.model.afterUpload();
        }

        $("#receiptTargetUploadFile").remove();
        $('<iframe id="receiptTargetUploadFile" name="receiptTargetUploadFile" style="position:absolute; left: -999em; top: -999em;"></iframe>').appendTo('body');
    };
        this.runSetup = false; 
}

【问题讨论】:

  • css中popup的位置值是多少,你能分享一些代码吗?
  • 无代码=无帮助+标志
  • @madalinivascu 添加代码
  • @VilasKumkar 代码上传
  • @Malte 你介意改变你的css,即div.standarddialog {position:fixed},它可能会解决你的问题。如果您能分享当前问题的实际行为,我将不胜感激

标签: javascript jquery html css jquery-mobile


【解决方案1】:

我在这里找到答案https://github.com/kakul/jquery-mobile/commit/820aa81b1eb0bb546d40571541cf4a084f6409e5

您只需插入缺少的代码位,它应该可以工作

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多