getRIGHT()
ブラウザ画面左端からレイヤ−右辺(可視のclip範囲内の右辺)までのピクセル数を取得するためのサンプルファンクションです。ようは、レイヤ−の右端がぺ−ジの左端から何ピクセルあるか?ということです。
n4では
leftとclip.rightを、m1,n6,n7,s1では
leftとrightを、
e4,e5,e6,o6,o7では
pixelLeftとpixelWidthを足しています。
たとえば、画面の右端でレイヤ−を止めるなどの位置判定に使えます。
注:注:m1,n6,n7,s1(e5,e6もleftで処理した場合)などではインラインスタイルまたはスクリプトで
あらかじめ値を指定していない限り初期値は空白です。
*このファンクションをコピーして<script>と</script>の間にペーストしておくだけでこの機能をクロスブラウザに利用できるようになります。
Cross-Browser のための Sample Function
//--レイヤ−名で処理する場合
Syntax : getRIGHT('レイヤー名')
function getRIGHT(layName){
if(document.all){ //e4,e5,e6,o6,o7用
return document.all(layName).style.pixelLeft
+document.all(layName).style.pixelWidth
} else if(document.getElementById){ //n6,n7,m1,s1用
var l = document.getElementById(layName).style.left
var w = document.getElementById(layName).style.width
return ( l!="" && w!="" )?parseInt(l)+parseInt(w):""
} else if(document.layers){ //n4用
return document.layers[layName].left
+document.layers[layName].clip.right
}
}
Example
<script type='text/javascript'>
<!--
function getRIGHT(layName){
if(document.all){ //e4,e5,e6,o6,o7用
return document.all(layName).style.pixelLeft
+document.all(layName).style.pixelWidth
} else if(document.getElementById){ //n6,n7,m1,s1用
var l = document.getElementById(layName).style.left
var w = document.getElementById(layName).style.width
return ( l!="" && w!="" )?parseInt(l)+parseInt(w):""
} else if(document.layers){ //n4用
return document.layers[layName].left
+document.layers[layName].clip.right
}
}
//-->
</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(getRIGHT('test0'))">
このレイヤ−の右端はぺ−ジの左端から何ピクセル?</a>
</div>
//--オブジェクト名で処理する場合
上記の関数をレイヤー名の代わりにオブジェクトで処理するようにしたもの。
ブラウザ毎の実装オブジェクト処理が別立てになるので関数がシンプルになる。
Syntax : getRIGHToj(オブジェクト)
function getRIGHToj(oj){
if(document.all){ //e4,e5,e6,o6,o7用
return oj.pixelLeft
+oj.pixelWidth
} else if(document.getElementById){ //n6,n7,m1,s1用
var l = oj.left
var w = oj.width
return ( l!="" && w!="" )?parseInt(l)+parseInt(w):""
} else if(document.layers){ //n4用
return oj.left
+oj.clip.right
}
}
//--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]
}
Example
<script type='text/javascript'>
<!--
function getRIGHToj(oj){
if(document.all){ //e4,e5,e6,o6,o7用
return oj.pixelLeft
+oj.pixelWidth
} else if(document.getElementById){ //n6,n7,m1,s1用
var l = oj.left
var w = oj.width
return ( l!="" && w!="" )?parseInt(l)+parseInt(w):""
} else if(document.layers){ //n4用
return oj.left
+oj.clip.right
}
}
//--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(getRIGHToj(getLayStyleOj('test0')))">
このレイヤ−の右端はぺ−ジの左端から何ピクセル?</a>
</div>