一個easyui-panel動態居中方法兼move使用要點
阿新 • • 發佈:2018-12-12
在設計一個基於easyui-panel的登入網頁時,希望該panel能夠動態居中。但按照easyui官網上的程式碼和技術文件,使用panel物件的move方法時總是失效。下面程式碼介紹的move方法可以滿足panel動態居中需要。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Documentation - jQuery EasyUI</title> <link rel="stylesheet" type="text/css" href='/Scripts/easyui/themes/default/easyui.css'> <link rel="stylesheet" type="text/css" href='/Scripts/easyui/themes/icon.css'> <script type="text/javascript" src='/Scripts/jq/jquery-1.11.3.min.js'></script> <script type="text/javascript" src='/Scripts/jq/jquery.easyui.min.js'></script> <script type="text/javascript"> $(function () { SetCenter(); window.onresize = function () { setTimeout(function () { SetCenter(); }, 100); } }); function SetCenter() { var top = ($(window).height() - $('#rp').height() - 2) / 2; // 邊框寬度為2 var left = ($(window).width() - $('#rp').width() - 2) / 2; if (top < 0) top = 0; if (left < 0) left = 0; $('#rp').panel('move', { left: left, top: top }); // 可以省略 move 方法 } </script> </head> <body> <div id="rp" class="easyui-panel" title="login" style="width:400px;" data-options="style:{position:'absolute'}"> <table cellpadding="5"> <tr> <td>User Name:</td> <td><input class="easyui-textbox"></td> </tr> <tr> <td>Email:</td> <td><input class="easyui-textbox"></td> </tr> <tr> <td>URL:</td> <td><input class="easyui-textbox"></td> </tr> <tr> <td>Phone:</td> <td><input class="easyui-textbox"></td> </tr> </table> </div> </body> </html>
上述程式碼的要點是:
- 必須在easyui-panel控制元件中設計屬性 data-options="style:{position:'absolute'}",才能使用move方法。
- 設計window.onresize事件,在瀏覽器縮放時保證登入面板動態居中。