クリックすると現在の位置を起点として
指定したピクセル分だけ移動します

moveByLAYER()

Syntax : moveByLAYER('レイヤ−名',x方向ピクセル数,y方向ピクセル数)

レイヤーの現在位置を起点として指定したピクセル分だけ位置を移動させるためのサンプルファンクションです。NNでは専用のメソッドmoveBy(x方向px,y方向px)を使い、IEではx,y方向へ移動させるプロパティpixelLeftpixelTopへ+=を使ってx方向pxとy方向pxをピクセル(整数)で代入しています。たとえばpixelLeft=10ならブラウザ画面左端から10ピクセルの位置へ移動しますが、pixelLeft+=10だと現在のレイヤー位置に10足す、つまり右方向へ10ピクセルの位置へ移動するという意味になります。NN6,IE5ではleft=x座標top=y座標を整数で代入しています。 IEでは他にposLeft,posTop(実数)も使えます。

*このファンクションをコピーして<SCRIPT>と</SCRIPT>の間にペーストしておくだけでこの機能をNN,IE共通で利用できるようになります。

Cross-Browser のための Sample Function
//--レイヤ−名で処理する場合

function moveByLAYER(layName,offsetx,offsety){
if(document.getElementById){
var oj = document.getElementById(layName).style
oj.left = parseInt(oj.left)+offsetx
oj.top = parseInt(oj.top)+offsety
}
else if(document.layers)document.layers[layName].moveBy(offsetx,offsety)
else if(document.all){
var oj = document.all(layName).style
oj.pixelLeft+=offsetx
oj.pixelTop+=offsety
}
}

//--オブジェクト名で処理する場合(ネストがある時や大きめのスクリプト向き)

if(document.getElementById) oj=document.getElementById(layName).style //NN6,IE5用
else if(document.layers)oj=document.layers[layName] //NN用
else if(document.all) oj=document.all(layName).style //IE用

function moveByLAYER(oj,offsetx,offsety){
if(document.getElementById){
oj.left = parseInt(oj.left)+offsetx
oj.top = parseInt(oj.top)+offsety
}
else if(document.layers) oj.moveBy(offsetx,offsety)//NN用
else if(document.all){
oj.pixelLeft+=offsetx
oj.pixelTop+=offsety
}
}



Example

<SCRIPT LANGUAGE='JavaScript'>
<!--
if(document.getElementById) oj=document.getElementById(layName).style //NN6,IE5用
else if(document.layers)oj=document.layers[layName] //NN用
else if(document.all) oj=document.all(layName).style //IE用

function moveByLAYER(oj,offsetx,offsety){
if(document.getElementById){
oj.left = parseInt(oj.left)+offsetx
oj.top = parseInt(oj.top)+offsety
}
else if(document.layers) oj.moveBy(offsetx,offsety)//NN用
else if(document.all){
oj.pixelLeft+=offsetx
oj.pixelTop+=offsety
}
}
//-->
</SCRIPT>

<!--このレイヤ−上のリンクをクリックすると移動します------------->
<DIV ID="test"
STYLE="position:absolute;
left:10px;
top:10px;
">
<A HREF="javascript:moveByLAYER('test',10,20)">
クリックすると現在の位置を起点として
<BR>指定したピクセル分だけ移動します</A>
</DIV>