jqPlotをjQueryMobileで使うときのポイント

jqPlotをjQueryMobileで使うときのポイント

jqPlotをjQueryMobileで使うときには
グラフ作成のタイミングが重要になる

グラフを表示したいページに
pageshowイベントで
$.jqplotを呼び出すことでグラフを描画する
グラフが表示されないときには、呼び出すイベントに注目

$(document).on("pageshow","#chartbasic",function(e){
  plot = $.jqplot("chart",data,opts);
});

#chartbasicは
data-role=”page” id=”chartbasic”
で、表示するページのid

次の注意点として、パソコンと違いスマートフォンでは、画面が横向になる
デフォルトだと
横向になるとグラフが画面からはみ出たり
横が余る
これを防止するには
端末の向きが横向になると発生するイベント
orientationchangeイベントを検出したら
グラフを再描画するようにする

$(window).on(""orientationchange",function(e){
plot.replot();
});

また、端末の向きの変更でグラフの再描画をしたときに
ブラウザーのウインドウの幅と高さが
画面の幅と高さと
あっていないと
これも、グラフがはみ出たり、横が余る

この対処としては
viewportの設定をすることで解決する
ほとんどのスマートフォン向けWebアプリではこれを付けることも多い

<meta name="viewport"  content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

あと、重要なのが
別のページに行ったときに、jQueryMobileは現在のページのDOM情報を保持したまま
別ページ遷移する

このため、もう一度同じページに戻ると
再びグラフ描画が実行され
2つのグラフが描画されてしまい
レイアウトが崩れる

この対策としては、
別のページに遷移した後にグラフを削除しておく

$(document).on("pagehide","#chartbasic",function(e){
  plot.destroy();
});

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です