現在、ボタンをクリックするとページを下に3秒毎に繰り返しスクロールする処理を実装しようとしています。
javascript
1function startScroll() 2{ 3 timer = setInterval(scrollDown(),3000); 4} 5 6function scrollDown() 7{ 8 var webview = document.getElementById('mainWebview'); 9 webview.executeJavaScript('window.scrollTo(0, 100000000)'); 10}
このように記述した場合、スクロールが1回のみ行われ処理が終わります。
なぜ1回のみしか処理が行われないのかがわからず試行錯誤して timer = setInterval(scrollDown(),3000); をfunctionの外に出してみました。
javascript
1 timer = setInterval(scrollDown(),3000); 2 3function scrollDown() 4{ 5 var webview = document.getElementById('mainWebview'); 6 webview.executeJavaScript('window.scrollTo(0, 100000000)'); 7}
すると、求めている処理(ボタンを押すとスクロールループ)とは違いますが、ページが開いてから繰り返しスクロールをループしてくれました。
このように、 timer = setInterval(scrollDown(),3000); をfunctionの中に入れてonclickイベントで呼び出した場合はなぜ1回のみの実行になり、functionの外に出した場合は正常にループしてくれるのか仕組みがわからず困っています。
わかりやすく説明して頂ける方はいらっしゃいませんでしょうか?
回答2件
あなたの回答
tips
プレビュー