[jQuery] position:left で配置した要素の position:right の位置を計算する
CSSのpositionで配置された要素の相対位置を取得する場合に、position:rightで指定が入っていれば、jQueryの css(“right”) で取得できますが、rightの指定をしていない場合は直接取得することが出来ないため、親要素や左位置などから計算して出します。
計算の仕方
下の画像のように #container の中に #example という要素が入っているとします。#container 右から #example 右辺までの距離が position:right 値になるので、それを計算します。

HTMLとCSS
HTMLとCSSは以下のような感じとします。
<div id="container"> #container <p id="example"> #example </p> </div>
#container{
position: relative;
padding: 20px 10px;
width: 550px;
height: 250px;
}
#example{
position: absolute;
top: 60px;
left: 100px;
margin: 0 0 10px;
width: 150px;
height: 100px;
}
jQueryコード
下のコードで itemRight には300という値が入ります。これがposition:rightと同じ値になります。
var parent = $('#container');
var item = $('#example');
var itemRight = parent.innerWidth() - ( item.position().left + item.outerWidth() );
// parent.innerWidth()で#containerの内側の横幅を取得し、
// item.position().left + outerWidth() で#container左から#example右までの値を出します。
// #containerの横幅から#example右までの値を引けば、#exampleのrightが分かります。
console.log(itemRight);
No Comments & Tracbacks