ywork2020.com

Title

位置指定された先祖要素を取得する

目次 (INDEX)

offsetParentとは

ここで説明する offsetParent とは次の語句からなるjQueryのメソッドです。
offset
読み: オフセット
意味: 相殺、埋め合わせる、補正
parent
読み: ペアレント
意味: 親

目次に戻る

offsetParentメソッドの概要

このメソッドは、呼び出し元の要素から先祖方向にある一番近い位置指定要素を取得します。

位置指定要素とは CSS の position プロパティを使って表示位置 (relative / absolute / fixed) を設定した要素のことです。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

このメソッドは引数を受け付けません。

$(childSelector).offsetParent()

目次に戻る

サンプルコードと実行結果

ここでは、div, span, b の3要素を題材にします。

子要素を b として、その親に span要素 、更にその親に div とします。

メソッドの呼び出し元要素は b です。 div は CSSで位置指定を行っているので、この要素が、ここでの取得要素となります。

サンプルコード: CSS
<style>
	div{
		position: relative;
		background-color: ##lightblue;
		padding: 3em;
	}
	span{
		background-color: ##lightpink;
		border: thin solid currentColor;
		margin: 1em;
		padding: 2em;
	}
	b{
		background-color: ##lightcoral;
		border: thin solid currentColor;
		padding: 1em;
	}
</style>
  • 02: div (position: relative; この要素が位置指定要素です。)
サンプルコード: HTML
<head>
	<style>...</style>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>	
	<div>positioning parent
		< span><b>child</b>< /span>
	</div>
	<button id="idButton">Click</button>
	<script>...</script>
</body>
  • 06-08: div (この要素は CSS で位置指定を行っています。)
  • 07: span (div の子であり、b の親です。)
  • 07: b (この要素が offsetParent() の呼び出し元です。)
  • 09: button (ボタンです。クリックすると script 02 ~ 07 のコードが実行されます。)
サンプルコード: script
<script>
	$("#idButton").click(function(){
		$("b").offsetParent().css({
			"background-color" : "##lightgreen",
			"left" : "50px"
		});
	});
</script>
  • 02-07: $("#idButton").click(function(){処理}) (id="idButton" の要素がクリックされると 処理 を実行します。)
  • 03: $("b").offsetParent() (b を呼び出し元とし、位置指定した一番近い先祖要素を取得します。)
  • 03-06: css() (位置指定要素のスタイルを設定します。)
実行結果:
positioning parent child

目次に戻る