getBOTTOM()
ブラウザ画面上端からレイヤ−下辺(可視のclip範囲内の下辺)までのピクセル数を取得するためのサンプルファンクションです。つまり、レイヤ−の下端がぺ−ジの上端から何ピクセルあるか?ということです。
n4では
topとclip.bottomを、m1,n6,n7,s1では
topとheightを、
e4,e5,e6,o6,o7では
pixelTopとpixelHeightを足しています。
たとえば、画面の右端でレイヤ−を止めるなどの位置判定に使えます。
注:m1,n6,n7,s1(e5,e6もtopで処理した場合)などではインラインスタイルまたはスクリプトで
あらかじめ値を指定していない限り初期値は空白です。
*このファンクションをコピーして<script>と</script>の間にペーストしておくだけでこの機能をクロスブラウザに利用できるようになります。
Cross-Browser のための Sample Function
//--レイヤ−名で処理する場合
Syntax : getBOTTOM('レイヤ−名')
function getBOTTOM(layName){
if(document.all){ //e4,e5,e6,o6,o7用
return document.all(layName).style.pixelTop
+document.all(layName).style.pixelHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var t = document.getElementById(layName).style.top
var h = document.getElementById(layName).style.height
return ( t!="" && h!="" )?parseInt(t)+parseInt(h):""
} else if(document.layers){ //n4用
return document.layers[layName].top
+document.layers[layName].clip.height
}
}
Example
<script type='text/javascript'>
<!--
function getBOTTOM(layName){
if(document.all){ //e4,e5,e6,o6,o7用
return document.all(layName).style.pixelTop
+document.all(layName).style.pixelHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var t = document.getElementById(layName).style.top
var h = document.getElementById(layName).style.height
return ( t!="" && h!="" )?parseInt(t)+parseInt(h):""
} else if(document.layers){ //n4用
return document.layers[layName].top
+document.layers[layName].clip.height
}
}
//-->
</script>
<!--↓このリンクをクリックすると下辺の位置がわかります/////-->
<div id="test0"
style="position : absolute ;
left : 100px ;
top : 80px ;
width : 300px ;
height : 100px ;
clip : rect(0,300,100,0) ;
font-size : 12pt ;">
<a href="javascript:alert(getBOTTOM('test0'))">
このレイヤ−の下端はぺ−ジの上端から何ピクセル?</a>
</div>
//--オブジェクト名で処理する場合
上記の関数をレイヤー名の代わりにオブジェクトで処理するようにしたもの。
ブラウザ毎の実装オブジェクト処理が別立てになるので関数がシンプルになる。
Syntax : getBOTTOMoj(オブジェクト)
function getBOTTOMoj(oj){
if(document.all){ //e4,e5,e6,o6,o7用
return oj.pixelTop + oj.pixelHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var t = oj.top
var h = oj.height
return ( t!="" && h!="" )?parseInt(t)+parseInt(h):""
} else if(document.layers){ //n4用
return oj.top
+oj.clip.height
}
}
Example
<script type='text/javascript'>
<!--
function getBOTTOMoj(oj){
if(document.all){ //e4,e5,e6,o6,o7用
return oj.pixelTop + oj.pixelHeight
} else if(document.getElementById){ //n6,n7,m1,s1用
var t = oj.top
var h = oj.height
return ( t!="" && h!="" )?parseInt(t)+parseInt(h):""
} else if(document.layers){ //n4用
return oj.top
+oj.clip.height
}
}
//--layNameで指定したオブジェクトを返す(必ずonload後に実行すること)
function getLayStyleOj(layName){
if(document.getElementById) //e5,e6,n6,n7,m1,o6,o7,s1用
return document.getElementById(layName).style
else if(document.all) //e4用
return document.all(layName).style
else if(document.layers) //n4用
return document.layers[layName]
}
//-->
</script>
<!--↓このリンクをクリックすると下辺の位置がわかります/////-->
<div id="test0"
style="position : absolute ;
left : 100px ;
top : 80px ;
width : 300px ;
height : 100px ;
clip : rect(0,300,100,0) ;
font-size : 12pt ;">
<a href="javascript:alert(getBOTTOMoj(getLayStyleOj('test0')))">
このレイヤ−の下端はぺ−ジの上端から何ピクセル?</a>
</div>