1. 程式人生 > >一個easyui-panel動態居中方法兼move使用要點

一個easyui-panel動態居中方法兼move使用要點

在設計一個基於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事件,在瀏覽器縮放時保證登入面板動態居中。