【おやじのweb技】 html/javascript/css等![]() |
|||||||||||||||
TopPage表示 / 保 存 / 印 刷 / Window Resize / Window Close | |||||||||||||||
g003 |
画像や背景画像を一定時間ごとにランダムに入れ替える | ||||||||||||||
![]() | |||||||||||||||
このページのトップに戻る / Window Resize / Window Close / 最終更新日表示 | |||||||||||||||
action |
|
||||||||||||||
web技 |
■【技g012-1】画像を一定時間毎にランダムに入れ替える/表示している画像Noをテキストフィールドに表示する ◆以下の手順は[技g003]と全く同じですので、[技g003]を参照して下さい。 ※手順1a【テキストフィールド設置】(画像Noを表示するためのテキストフィールドの設置)※手順1b【表示画像設置】(表示する画像の設置) ※手順1c【開始・停止ボタン設置】 ※手順2【スクリプト実行】(スクリプトを実行する) ◆手順3【javascript】<head>〜</head>間に記述 -----次の行から(copy)----- <script language="JavaScript"> <!-- var TIMER="3000"; //スライド切替時間(1秒=1000) var TIMER_ID="-1"; //タイマーID(スライド停止:TIMER_ID=-1) var FILE="JPG"; //画像の拡張子(統一する) var FOLDER="photo"; //画像を保存するフォルダ名(相対パス) var TOTAL="5"; //画像の枚数*/ count=0; //最初の画像名(0から) function StartSlide() { if ( TIMER_ID == -1 ) { TIMER_ID = setInterval('ChangeImg()',TIMER); //停止中の場合に実行 } } function ChangeImg() { count=Math.floor(Math.random()*TOTAL); //[技g003]とこの行が異なります(countの算出方法) document.IMAGE.src=FOLDER + "/" + count + "." + FILE; //画像を表示 document.FORM.MSG.value = count + 1; //画像Noを表示 } function StopSlide() { if ( TIMER_ID != -1 ) { clearInterval(TIMER_ID); TIMER_ID="-1" //スライド停止中 } } //--> </script> -----上の行まで(copy)----- |
||||||||||||||
■【技g003-2】背景画像を一定時間毎にランダムに入れ替える/表示している画像Noをテキストフィールドに表示する ◆以下の手順は[技g003]と全く同じですので、[技g003]を参照して下さい。 ※手順1a【テキストフィールド設置】(画像Noを表示するためのテキストフィールドの設置)※手順1b【表示背景画像設置】(表示する背景画像の設置) ※手順1c【開始・停止ボタン設置】 ※手順2【スクリプト実行】(スクリプトを実行する) ◆手順3【javascript】<head>〜</head>間に記述 ※画像の場合とほとんど同じで、異なるのは画像のフォルダ名やname属性の他は //(*)の行だけです -----次の行から(copy)----- <script language="JavaScript"> <!-- var TIMER="5000"; //スライド切替時間(1秒=1000) var TIMER_ID="-1"; //タイマーID(スライド停止:TIMER_ID=-1) var FILE="JPG"; //画像の拡張子(統一する) var FOLDER="photo_B"; //画像を保存するフォルダ名(相対パス) var TOTAL="5"; //画像の枚数*/ count=0; //最初の画像名(0から) function StartSlide_B() { if ( TIMER_ID == -1 ) { TIMER_ID = setInterval('ChangeImg()',TIMER); //停止中の場合に実行 } } function ChangeImg() { count=Math.floor(Math.random()*TOTAL); //[技g003]とこの行が異なります(countの算出方法) document.body.style.backgroundImage="url(" + FOLDER + "/" + count + "." + FILE + ")"; //bodyの背景画像変更(*) document.FORM_B.MSG_B.value = count + 1; //画像Noを表示 } function StopSlide() { if ( TIMER_ID != -1 ) { clearInterval(TIMER_ID); TIMER_ID="-1" //スライド停止中 } } //--> </script> -----上の行まで(copy)----- ◆手順4【背景画像のスタイル設定】 ※背景画像のをウィンドウの中央に1枚だけ表示するようにしています ※ウィンドウをスクロールしても背景画像は動かないように設定しています(IE限定) ※詳細は、[技g003]を参照して下さい。 |
|||||||||||||||
解説等 |
◆このページは背景画像を効果的に演出するために他のページと背景画像や文字の背景色の設定を変えています。 ◆注意 ※「開始」「停止」ボタンをクリックすると、テスキトフィールドやボタンの背景色が変化しますが、解説では省略しています。 ◆画像を指定時間毎にランダムに変更します。 ※「画像」も「背景画像」もほとんど同じ考え方です。 ◆画像の設置方法等は[技g003]の解説を参照して下さい。 ◆ランダムな数値の計算方法 ※Math.randam() 0〜1までの乱数を返します。 本技のような使い方では、返された乱数を「整数化」する必要があります。 ※floor(n) 小数点以下を切り捨てた整数を返します。 例示では整数化するのにn=Math.randam()*TOTAL(TOTALは画像枚数)としています。 これによって画像番号は0〜(TOTAL-1)に相当する整数が同じ確率で返ります。 【適用技】このページの技に適用した他の技です ◆[技g003]画像や背景画像を一定時間毎に入れ替える ◆[技m008]リンク文字にマウスを重ねるとテキストフィールドにメッセージを表示する ◆[技g002]背景画像を1枚だけ表示する ◆[技g010]ウィンドウをスクロールしても背景画像は動かない(固定)する 【応用技】 ◆[技g011]画像をワイプして入れ替える ※画像が入れ替わるときワイプさせることもできます。ちょっとおしゃれです。 |
||||||||||||||
key word | ◇setInterval()◇input◇randam() | ||||||||||||||
history |
◇(2004.10.05)設置 | ||||||||||||||
注意 |
◆操作MENUの[Window Resize]を選択するとウィンドウサイズが変更可能です。 ◆上記の[web技]をクリップボードにコピーしテキストエディタに貼り付けて使用する場合は、表示のための改行記号や全角・半角スペースの記号等を削除して下さい。 -----次の行から(copy)----- (この部分をクリップボードにコピーしてテキストエディタ等に貼り付けて下さい) -----上の行まで(copy)----- |