Java Scriptの解説

4.スクロール

1.子ウインドウを開く(No1)

新しいウインドウを開いて,新しいページ呼び出すプログラムです。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script 例1</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
function newwin(f){
nw=window.open("../stoma-page/stoma51.html","nwind1","WIDTH=180,HEIGHT=250,
SCROLLBARS=1,RESIZABLE=0,TOOLBAR=0,MENUBAR=0,LOCATION=0,DIRECTORIES=0,STATUS=0");
}
//−−>
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=”POST”>
<INPUT TYPE=”button” VALUE=”新しいウインドウ” onClick=”newwin(this.form)”>
</FORM>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例1表示 ここをクリックして下さい。例が表示されます。

<解説>
例のnw=window.open(. )は,改行せず1行で書いて下さい。
1.nw=window.open(...   :新しいウインドウをnwにオープンします。
2.window.open("../stoma-page/stoma51.html","wind1",...
window.open("新しいウインドウに開くページのある場所","ウインドウの名前",...
3.各種パラメータ
WIDTH :ウインドウの幅(ピクセル値) HEIGHT :ウインドウの高さピクセル値)
ウインドウに付属のバーなど表示するかどうかの設定です。以下の設定は,(0:なし,1:あり)になります。
SCROLLBARS :スクロールバー(0:なし,1:あり) RESIZABLE :ウインドウサイズの可変
TOOLBAR :ツールバー MENUBAR :メニューバー LOCATION :ロケーション窓 
DIRECTORIES :新着情報などのボタン STATUS :ステータスバー
次の例のように省略してもかまいません。
4.<INPUT TYPE=”button” VALUE=”新しいウインドウ” onClick=”newwin(this.form)”>
「新しいウインドウ」というボタンを表示して,それが押されたときnewwin()という関数がよばれて実行されます。

2.子ウインドウを開く(No2)

次のような方法でも,新しいページを開くことができます。関数中にメーセージを記載するという方法です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script 例2</TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
function newwin(){
nw=window.open(””,””,"WIDTH=180,HEIGHT=250");
nw.window.write("<H2>新しいウインドウです。</H2>");
nw.window.write("<FONT COLOR=red>テスト用のウインドウです</FONT><BR>");
nw.window.write("<H3><FONT COLOR=blue>テストです。</FONT></H3>");
}
//−−>
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=”POST”>
<INPUT TYPE=”button” VALUE=”新しいウインドウ” onClick=”newwin()”>
</FORM>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例2表示 ここをクリックして下さい。例が表示されます。

ファイルを新ウインドウに表示する以外に,関数内に記載して表示する方法もあります。
1.nw=window.open(...    新しいウインドウをnwにオープンします。
2.nw.window.write()   開いたnwに()内のHTML文を表示します。
()内に書くHTML文では,「”」は使えません。省略するか「’」を代わりに使います。

3.ウインドウのスクロール

<パターン1>
ボタンを押すと,新しいウインドウが開き内容が自動的にスクロールします。
例1のような新しいウインドウを呼び出すページを作ります。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
function newwin(f){
we=window.open("script30.html","nwind2","WIDTH=450,HEIGHT=100,SCROLLBARS=1");
}

呼び出されるscript30.htmlの中身は,次のようになります。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<HTML>
<HEAD>
<TITLE>Java Script </TITLE>
<SCRIPT LANGUAGE=”JavaScript”>
<!−−
var tid;
var n=0;
function scr(){
    tid=setTimeout(”scr()”,100);
if (n>200){n=0;}
else{n=n+4;scroll(0,n);}

function stop(){
    clearTimeout(tid);
}
//−−>
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#ffffff" onload="scr();" onunload="stop();">
<BR>
<H3>自動スクロールのテストです。</H3>
IE Ver4.01は,動きます。<BR>
NS Ver3.01は,動きます。<BR>
NS Ver4.05は,動きます。<BR>
IE Ver3は,調べてません。<BR>
IE Ver3は,だめでかな?。<BR>
<FONT COLOR=red>自分の工夫しだいでバリエーションができます。</FONT><BR>
上にスクロールするだけでなく,下にスクロールすることもできます。<BR>
if文の所を工夫すれば,色々なことができます。<BR>
n=n+ay; if (n==0||n=200) {ay=-ay} scroll(0,n);<BR>
あまりヒントになりませんか?<BR>
色々なバリエイションを考えて下さい。<BR>
 <BR>
 <BR>
 <BR>
 <BR>
 <BR>
 <BR>
 <BR>
</BODY>
</HTML>
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

例3表示 ここをクリックして下さい。例が表示されます。

1.<BODY BGCOLOR="#ffffff" onload="scr();" onunload="stop();">
ウインドウが開くとscr()の関数が呼び出されます。ウインドウが閉じるとstop()の関数が呼び出されます。
2.scr()関数
tid=setTimeout(”scr()”,100);
0.1秒毎にscr()の関数が呼び出され実行されます。スクロールをゆっくりにしたい場合は100を200や300にして下さい。
scroll(0,n);ウインドウをスクロールする命令です。 scroll(x1,y1);x方向(横)にx1ピクセルだけスクロールする。y方向(縦)にy1ピクセルだけスクロールする。 例では,x方向は0ですのでスクロールしません。y方向はnピクセルだけスクロールします。
3.if文  条件文
if (n>200) {n=0;}
else {n=n+4;scroll(0,n);}
nが200以上の場合次のif文の次の{ }の内容が実行されます。違う場合はelse文の次の{ }が実行されます。
例文は,nが200を越えたらnを初期化(0にする)して,スクロールを繰り返します。
nが200以下であれば,nの数を4増加させて,scrool命令を実行します。
nは4,8,12,16と増加していきます。nが204になった時,初期化されて0になります。
4.stop()関数
ウインドウが閉じられたとき,scr()の関数の動きを止めなければいけません。でないとエラーになります。
clearTimeout(tid);
これにより,停止します。
5. 最初と最後に空白行をいれた方が見やすいです。この設定では,空白行を含めて大体16行ぐらいが最適です。
6.行数との関係
ウインドウの高さは250ピクセルの設定,スクロールは4ピクセルづつ増加していきます。文字の大きさなどによりスクロールがうまくいかない場合があります。 この設定では,IEでは16行,NSでは20行ぐらいまでがうまく表示できます。文字の設定を変えてない限り,IEは,NSに比べて文字が大きいですのでIEの方が行数が少なくなります。 どちらでもうまく表示するためには16行にして下さい。

ウインドウの高さ(250ピクセル),スクロールする単位(4ピクセル),文字の大きさ,行数,nの条件式(nが200までスクロールする。4ピクセル増加で約50回)
これらが,色々関係してますので,設定条件を変える時は,必ずうまくいくか確認して下さい。IEとNSでも違います。NSでうまく表示される行数より少しすくなめにすればいいです。

<パターン2>
ページが開くと自動的に新しいウインドウが開き自動的に内容がスクロールします。

例4表示 ここをクリックして下さい。例が表示されます。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
<BODY BGCOLOR="#80ffff" onLoad="newwin();">
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
function scr(){
    tid=setTimeout(”scr()”,100);
if (n>200){clearTimeout(tid);close();}
else{n=n+4;scroll(0,n);}

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

onLoad=”newwin()”;”でページが開いたとき,関数newwin()が実行されます。
clearTimeout(tid);close();で1回表示すれば自動的に閉じます。
close()はウインドウを閉じることです。

4.テキストエリアのスクロール

ウインドウではなく,テキストアリアの文字を表示して自動的にスクロールします
これは,表示する文字の大きさ,色は指定できません。
例5表示 ここをクリックして下さい。例が表示されます。

改造時の注意
テキストエリアは5行,表示する文字列は20行の設定になってます。
for (i=0;i<5;i++) {str=str+msg[i+count];}
テキストエリアの行数を変えれば,i<5の所も変える必要があります。ここの意味は,msg[0]+msg[1]+msg[2]+msg[3]+msg[4] 表示,次に msg[1]+msg[2]+msg[3]+msg[4]+msg[5]を表示と1行ずつ表示をおくる事を意味します。それによりスクロールしています。 テキストエリアを3行にする場合は,i<3となります。
count++;
if (count>=15) {count=0;}
表示する行数は20行ですので最後は msg[15]+msg[16]+msg[17]+msg[18]+msg[19]で count=15になった所で終了を意味します。 テキストエリア5行で,25行表示したい場合はcount>=20という条件式になります。


トップページ

趣味のトップページ

娯楽室の各部屋
Scriptの解説へ戻る

Scriptのゲーム Aplletの解説 Appletのゲーム Linuxの部屋 物置部屋