バウンドするボールと文字列
バウンドする文字列
バウンドする文字列
Sample Source......................................................................>>>
<script Language="JavaScript"><!--
var x = 100; //ボールの現在X座標
var y = 100; //ボールの現在Y座標
var tx = 300; //文字列の現在X座標
var ty = 200; //文字列の現在X座標
var ox = 6; //ボールの横方向の増分(減分)
var oy = 8; //ボールの縦方向の増分(減分)
var tox = 4; //文字列の横方向の増分(減分)
var toy = 6; //文字列の縦方向の増分(減分)
function Move(){
var obj = document.all.boll; //ボールオブジェクト
var objt = document.all.txt; //文字列のオブジェクト
var bodyCW = document.body.clientWidth; //ドキュメントウィンドウの横幅
var bodyCH = document.body.clientHeight; //ドキュメントウィンドウの縦幅
var bodySCL = document.body.scrollLeft; //ドキュメントウィンドウの左端X座標
var bodySCT = document.body.scrollTop; //ドキュメントウィンドウの上端Y座標
//bodySCLとbodySCTは、ドキュメントウィンドウの上下左右スクロールで変化する
//・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・(以下はボールの位置移動)・・
x += ox; //X座標方向を増やす(減らす)
y += oy; //Y座標方向を増やす(減らす)
if((x+obj.offsetWidth >= bodyCW+bodySCL)||(x <=
bodySCL)){
//ボールがドキュメントウィンドウの右端||左端に達したとき
ox = -ox; //符号を反転(増分と減分を切り替える)
if(x <= bodySCL){
x = bodySCL; //ボールの位置をドキュメントウィンドウの左端に合わす
}else{
x = bodyCW - obj.offsetWidth
+ bodySCL;
//ボールの位置をドキュメントウィンドウの右端に合わす
}
}
if((y+obj.offsetHeight >= bodyCH+bodySCT)||(y <=
bodySCT)){
//ボールがドキュメントウィンドウの下端||上端に達したとき
oy = -oy;
if(y <= bodySCT){
y = bodySCT;
}else{
y = bodyCH - obj.offsetHeight
+ bodySCT;
}
}
obj.style.posLeft = x; //ボールのleft位置を設定
obj.style.posTop = y; //ボールのtop位置を設定
//・・・・・・・・・・・・・・・・・・・・・・・(以下は文字列の位置移動)・・
//・・・・・・・・・・・・・・・・・・・・・・・(スクリプト内容はボールの場合と同じ)
tx += -tox;
ty += -toy;
if((tx+objt.offsetWidth >= bodyCW+bodySCL)||(tx <= bodySCL)){
tox = -tox;
if(tx <= bodySCL){
tx = bodySCL;
}else{
tx = bodyCW - objt.offsetWidth + bodySCL;
}
}
if((ty+objt.offsetHeight >= bodyCH+bodySCT)||(ty <= bodySCT)){
toy = -toy;
if(ty <= bodySCT){
ty = bodySCT;
}else{
ty = bodyCH - objt.offsetHeight + bodySCT;
}
}
objt.style.posLeft = tx;
objt.style.posTop = ty;
}
// --></script>
</head>
<body onload="timerID=setInterval('Move()',20);"
onunload="clearInterval(timerID);">
<img id="boll"
style="position:absolute;top:100px;left:100px;z-index:-1"
src="../../images/bt0707.gif" width="28"
height="28">
<div id="txt"
style="position:absolute;top:200px;left:300px;
width:180;height:28;color:blue;font-size:16pt;
background-color:pink;z-index:2">
バウンドする文字列
</div>
end(最終更新:12/11/12)