一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - jQuery前端框架easyui使用Dialog時bug處理

jQuery前端框架easyui使用Dialog時bug處理

2021-05-04 18:47jQuery教程網 JavaScript

本文介紹了在jQuery前端框架easyui開發UI時,使用Dialog時發現遮罩無法覆蓋頁面內容,而且對話框也顯示不出來,經過一番研究,才發現問題所在,這里分享給大家,有相同情況的小伙伴可以參考下

最近一直都在用easyui前端框架來開發設計UI,但在使用Dialog時,發現如果頁面內容比較多,就會出現問題,首先看一下我的原代碼:

 

復制代碼 代碼如下:

 <input type="button" value="確認預約" id="btnconfirm" onclick="javascript:openconfirmDlg();" />
    <div id="confirmd"> 
        <p>請選擇確認結果:</p>
        <p><input type="radio" value="True" id="rtrue" name="rresult" class="rresult" /><label for="rtrue">成功</label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="radio" value="False" id="rfalse" name="rresult" class="rresult" /><label for="rfalse">失敗</label></p>
    </div>
     <script type="text/javascript">
         $("#confirmd").dialog({
             title: '預約確認',
             iconCls: 'icon-save', resizable: false, modal: true, closed: true,
             width: 200, height: 200,
             buttons: [{ text: '提 交', handler: function () {
                 alert("ok");
             }
             }, { text: '取 消', handler: function () {
                 $("#confirmd").dialog("close");
             }
             }]
         });
     function openconfirmDlg() {
         $("#confirmd").dialog("open");
     }
     </script>

 

當點擊【確認預約】按鈕時,打開對話框,效果如下:

jQuery前端框架easyui使用Dialog時bug處理

可以看到幾個問題,一是遮罩層沒有全部蓋住網頁內容,二是對話框不見了,當然不是真的不見了,而是顯示到了頁面的上方,需要將滾動條拖回到項端方可見到,造成這樣的原因很清楚,一是獲取網頁內容高度不正確,只是得到了window的高度(即可視高度),才會出現遮罩不完整,二是定位不正確,未能正確識別到scrollTop,造成對話框定位不準,針對這些問題,我做出了相應的改進,從而解決了該問題,下面是改進后的代碼:

 

復制代碼 代碼如下:

    <input type="button" value="確認預約" id="btnconfirm" onclick="javascript:openconfirmDlg();" />
    <div id="confirmd"> 
        <p>請選擇確認結果:</p>
        <p><input type="radio" value="True" id="rtrue" name="rresult" class="rresult" /><label for="rtrue">成功</label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="radio" value="False" id="rfalse" name="rresult" class="rresult" /><label for="rfalse">失敗</label></p>
    </div>
     <script type="text/javascript">
         $("#confirmd").dialog({
             title: '預約確認',
             iconCls: 'icon-save', resizable: false, modal: true, closed: true,
             width: 200, height: 200,
             buttons: [{ text: '提 交', handler: function () {
                 alert("ok");
             }
             }, { text: '取 消', handler: function () {
                 $("#confirmd").dialog("close");
             }
             }]
         });
     window.onscroll = function () {
         $("#confirmd").dialog("move", { top: $(document).scrollTop() + ($(window).height() - 200) * 0.5 });
     }
     function openconfirmDlg() {
         $("#confirmd").dialog("open");
         $("#confirmd").dialog("move", { top: $(document).scrollTop() + ($(window).height() - 200) * 0.5 });
         $(".window-mask").css({ height: $(document).height()});
     }
     </script>


現在打開對話框就正常了,效果如下:

 

jQuery前端框架easyui使用Dialog時bug處理

即使滾動也能始終處在網頁中間,效果如下:

jQuery前端框架easyui使用Dialog時bug處理

確保如上效果的關鍵代碼是:

 

復制代碼 代碼如下:

         $("#confirmd").dialog("move", { top: $(document).scrollTop() + ($(window).height() - 200) * 0.5 }); //移動到當前內容頁面的中間
         $(".window-mask").css({ height: $(document).height()}); //調整遮罩層的高度為網頁內容高度

 

大家測試下,是不是比之前的好用多了,本人測試了大多數瀏覽器都沒有問題,如果有遺漏的,還請留言告之,本代碼持續更新。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 女张腿男人桶羞羞漫画 | 男生操女生动态图 | 无遮挡免费h肉动漫在线观看 | 热99精品只有里视频最新 | 国产美女亚洲精品久久久综合91 | 欧美人伦禁忌.5 | 欧美一级精品 | 狠狠色狠狠色综合日日小蛇 | 亚洲成年| 欧美亚洲另类在线观看 | 日韩精品视频美在线精品视频 | 美女和男人一起差差 | 亚洲国产成人久久综合区 | 精品国产福利片在线观看 | hd在线观看免费高清视频 | 疯狂伦交1一6 小说 风间由美在线 | 美女被扣逼 | 欧美xbxbxbxb大片 | 99久久国产综合精品麻豆 | 污网站免费观看在线高清 | 亚洲va天堂va国产va久久 | 毛片网站免费观看 | 美女扒开胸罩露出奶了无遮挡免费 | 色多多在线观看视频 | 俄罗斯一级毛片免费播放 | 北岛玲在线视频 | 欧美性videossex丝袜 | 国产精品国产国产aⅴ | 日麻逼| 五月一区二区久久综合天堂 | 四虎影院在线免费观看视频 | 人与禽交3d动漫羞羞动漫 | 5g影院天天5g天天爽大陆 | 亚洲AV无码乱码国产麻豆穿越 | 亚洲精品欧洲久久婷婷99 | 青草草在线| 日本国产成人精品视频 | 国产91网站在线观看 | 60岁妇女毛片免费观看 | 五月天中文在线 | 国产高清在线精品一区 |