Widget APIを使ってスライドショーを作成してみた。仕様は次へ・戻る・止まるの3ボタンを設けて、どっち方向にでもボタンを押せば、自動で進むこととした。
- <body onLoad=”function”>は、止めてwindow.onload=function()を使う。
- ボタンも同様にdocument.form1.next.onclick=function()を使う。
- あれ、javascriptでボタンを押したことにするのに無名関数だと呼べない??
何か模擬的にボタンを押すやりかたが有ったよなと、検索してたらfireEventが見つかった。前に使ったのと違うけどと思いつつ使ってみると、ちゃんと機能するので書き換えて確認。IE9で確認、OK。でも他は駄目。
過去のソースファイルをいくつか捜していたら、document.form1.next.click()が見つかった。次にタイマーはsetIntervalを使って書いてるとどうも処理が書きにくい。もう一つのsetTimeoutを使ったほうが書き易そう。
書き換えながら、再帰的に関数を呼ぼうとしたら、無名関数なので呼べない。あれ、さっきと同じなので、これは前記の方法で解決。
動作確認をしてみると、ボタンの排他処理をしていないので、次ボタンを押して停止せずに戻るボタンを押すと、写真が左右に行ったり来たりします。排他処理でボタンの禁止と解除を追加していたら、禁止中はclick()も使用出来ないし、処理が面倒になってきた。仕様追加、「必ず停止ボタンを押してから次の操作を行うこと」
setTimeoutの説明を見直ししていると、arguments.calleeが書いてありました。へぇーこんなのがあるんだ!早速書き換えてみたが何故か動かない??? よーーく、見比べてみたら、エルが1つ抜けたスペルミスでした。もう、目が疲れたので、ボタンの排他処理は保留です。最後に、下記サイトでチェックして数箇所を修正。
0 件のコメント:
コメントを投稿