0

ページ(または何らかの要素)がロードされていることを示すために、ある種のオーバーレイで作業しています。divページまたは対象となる要素のいずれかの中央に配置された「読み込み中...」というメッセージを配置しようとしています。

これは私のアプローチですが、まったく機能していません...

var left, top,
    position = 'fixed';

if (this.container !== 'body'){
  position = 'absolute';
}

left = (window.innerWidth - this.element.offsetWidth) / 2;
top = (window.innerHeight/2) - (this.element.offsetHeight/ 2);

this.modal.style.left = left + 'px';
this.modal.style.top = top + 'px';
this.modal.style.position = position;

jQuery はなく、jQuery を使用するつもりはないと述べてください。

4

3 に答える 3

1

すべてのアクション通知に同じ div を使用する場合、つまり異なる要素を意味しますが、同じ div では、JS を使用しないとそれを行うことができません。しかし、少なくとも jQuery を使用すると、コーディングが容易になります。

.offsetを使用して、ドキュメント全体に対する現在の要素の位置を特定.height().width()、要素を使用してポップアップ座標を計算できます。

于 2013-09-17T11:15:04.030 に答える
0
Use css to center the "cover" over the loading part, then use jquery to hide the "cover" div when completed.

<html>
    <style>
        #outer
        {
            position: absolute;
            left: 10px;
            top: 10px;
            height: 300px;
            width: 300px;
            border: 1px solid black;
            background-color: red;
        }

        #loading
        {
            position: absolute; 
            background-color: blue; 
            width: 200px; 
            height: 200px; 
            margin-left: -100px; 
            left: 50%; 
            margin-top: -100px; 
            top: 50%;
            border: 1px solid black;
        }
    </style>
    <script src="jQuery.js"></script>
    <script>
        $(document).ready(function() {
            $("#loading").hide();
        });
    </script>
    <div id="outer">
        <div id="loading">

        </div>
    </div>
</html>
于 2013-09-17T11:18:04.233 に答える