2016年3月18日金曜日

(jQueryの学習)CSS:相対位置を操作する/positionメソッド/親要素からの要素の相対位置を取得する(その1)

CSSの要素の相対位置を操作する方法の3回目です。

本日は「3.親要素からの要素の相対位置を取得する」を学びます。

まずは「単一要素」に対する親要素からの相対位置を取得します。

3.親要素からの要素の相対位置を取得する

3-1.positionメソッド【返却値(objectオブジェクト) = 要素.position()】で親要素からの要素の相対位置を取得する
次はpositionメソッドを使い、親要素からの要素の相対位置を取得します。

サンプルの「テストエリア1」と「テストエリア2」にとっての親要素とは、
テストエリア1と書かれてる文言がある枠のさらに外側の枠の部分です。

なお、対象要素の位置の基準点は、border外側の左上の角になり、marginは含みません。
(わかりにくいですが、「テストエリア1」や「テストエリア2」の「テ」文言のすぐ下あたりになります)

注意:このメソッドは設定では使用できません。
サンプルソース
// HTML
<input type="button" value="ボタンを押すと、親要素からの要素の相対位置が表示されます"><br>
<div class="box">
  <div class="box"><b>テストエリア1</b><div class="box-css-test-area-1">・・・略・・・</div></div>
</div>

// CSS
/* テストエリア1 */
.box-css-test-area-1 {background:#F5EEFF; border:5px solid #88f; padding:10px; margin:20px; height:40px; width:460px;}

// jQuery
$(function() {
  $("input[type=button]").click(function(){
    // 【構文】返却値(objectオブジェクト) = 要素.offset()
    //   サンプル:「テストエリア1」の左上からの相対位置を取得する
    // 左からの相対位置
    alert("[" + $(".box-css-test-area-1").position().left + "]");
    // 上からの相対位置
    alert("[" + $(".box-css-test-area-1").position().top + "]");
  });
});
実装例
指定した要素に対する親要素からの相対位置を取得します。

要素:

テストエリア1
border:5px; padding:10px; margin:20px; height:40px; width:460px;
(境界線:5px、枠内余白:10px、枠外余白:20px、高さ:40px、幅:460px)
テストエリア2
border:5px; padding:20px; margin:10px; height:30px; width:450px;
(境界線:5px、枠内余白:20px、枠外余白:10px、高さ:30px、幅:450px)

次回は「複数要素」に対する親要素からの相対位置を取得する方法を学びます。

それでは、また。

Previous Post
Next Post

post written by: