jQuery Mobileのイベント処理 (5/6)
作成:2011-06-13 07:50
更新:2012-03-29 10:25
更新:2012-03-29 10:25
■スクロールの開始と終了
スマートフォンでは、表示される画面サイズが小さいこともあって、上下にスクロールしながら読む、という操作を頻繁に行います。こうした「スクロール」に関するイベントも用意されています。以下のものです。
scrollstart――スクロールを開始したときのイベント
scrollstop――スクロールが停止したときのイベント
これらを使うことで、スクロールを行ったときに何らかの処理を行わせることができるようになります。ただし! 2010年6月時点での最新バージョンでは、iPhoneでこのイベントがまだうまく機能しないようです(スクロール中は表示が反映されない)。Android関係のみのイベントと考えておくとよいでしょう。
下に、その簡単な利用例を挙げておきました。ページを表示し、上下にスクロールをしてみてください。スクロール中、ページローディングの表示が現れるようになります(スクロールを停止すると表示は消えます)。
ここでは、以下のようにしてスクロールのイベントを組み込んでいます。やはり、先ほどのorientationchangeイベントと同様、$(window)に対してイベントをバインドします。これは間違えないようにしてください。
scrollstart――スクロールを開始したときのイベント
scrollstop――スクロールが停止したときのイベント
これらを使うことで、スクロールを行ったときに何らかの処理を行わせることができるようになります。ただし! 2010年6月時点での最新バージョンでは、iPhoneでこのイベントがまだうまく機能しないようです(スクロール中は表示が反映されない)。Android関係のみのイベントと考えておくとよいでしょう。
下に、その簡単な利用例を挙げておきました。ページを表示し、上下にスクロールをしてみてください。スクロール中、ページローディングの表示が現れるようになります(スクロールを停止すると表示は消えます)。
ここでは、以下のようにしてスクロールのイベントを組み込んでいます。やはり、先ほどのorientationchangeイベントと同様、$(window)に対してイベントをバインドします。これは間違えないようにしてください。
$(window).bind('scrollstart',doAction);
$(window).bind('scrollstop',doAction2);他は、特に注意点はありません。呼び出される関数も、引数などは特にありません。非常にシンプルですね。(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="content-type"
content="text/html;charset=utf-8" />
<title>Sample</title>
<link rel="stylesheet"
href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript"
src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(window).bind('scrollstart',doAction);
$(window).bind('scrollstop',doAction2);
});
function doAction(){
$.mobile.pageLoading();
}
function doAction2(){
$.mobile.pageLoading(true);
}
</script>
</head>
<body>
<!-- home page -->
<div id="home" data-role="page">
<div data-role="header">
<h1>Hello</h1>
</div>
<div data-role="content">
<p id="msg">※サンプル。</p>
<div style="height:200px;background-color:#FFDDDD;"></div>
<div style="height:200px;background-color:#DDFFDD;"></div>
<div style="height:200px;background-color:#DDDDFF;"></div>
</div>
</div>
</body>
</html>
※関連コンテンツ
「jQuery Mobileによるスマートフォン用Webサイト作成入門」に戻る