このソリューション (コメント) に jQuery を使用することに厳密に縛られているわけではないようですが、他の代替手段については知りませんでした。だから私は1つを提案します。
別のアプローチ - CSS を使用する
JavaScript を使用して要素を配置する代わりに、代わりに CSS を使用して、要素fixed
を画面の中央に配置できます。最も明白な利点のいくつか:
- クライアントで追加のコードを実行する必要がない = パフォーマンスの向上
- 要素はドキュメントのスクロールに関係なく集中化されたままです - Javascript を使用して同じことが必要な場合は、スクロール イベントで位置を再計算する必要がありますが、Javascript の実行は(まだ) その瞬間ではないため、ドキュメントが高速にスクロールされると要素がジャンプします。
要素を動的に追加しているので、CSS ファイルの中心位置を定義する特定の CSS クラス名を設定するだけです。
画面の中央に要素を配置する方法がわからない場合は、この JSFiddleがその方法を示しています。要素をビューポートの中央に配置するだけですが、その方法を既に知っているように見えるため、新しい要素を生成しません。
必須CSS
.centralise {
width: 200px; /* set dimension */
height: 50px;
position: fixed;
top: 50%; /* move top left to screen centre */
left: 50%;
margin: -25px 0 0 -100px; /* offset by half element's size left and up */
text-align: center; /* centralise text within element */
line-height: 50px;
}
要素を上下 50% に配置する場合は、特定の寸法を指定する必要があるため、正確な負のマージンを設定して真ん中に配置できます。
固定寸法はありえませんか?
特定の要素の寸法を設定できない場合は、それmargin: 25% auto;
を支援する必要があります。ただし、この場合、水平方向の真ん中にのみ配置されます。要素を上半分またはほぼ中央に配置しても、中央に配置されているように見えるため、垂直位置は通常それほど問題になりません。ドキュメントの内容によっては、中央よりも高くした方がよい場合もあります。