2012-02-22 10 views
2

私はStackOverflowの上に新しいんだけど、私はPhoneGapの+ jQueryのモバイルコンボを使用してWebアプリケーションを研究開発をしていると私はとの問題を抱えている;-)PhoneGapの+ JQM Androidのスクロール問題

をグーグルとき、私は記事をたくさん読んでAndroidでスクロールします。私は私のJSに持って

<div data-role="page" id="categories"> 
<div data-role="header">...</div> 

<div data-role="content" style="padding:0 15px;"> 
<div id="categories_canvas" style="overflow-y:scroll;">...</div> 
</div> 

<div data-role="footer">...</div> 
</div> 

:私のページには、次のようになり、高さを設定する

var height_canvas = $(window).height() - $("div.ui-footer").outerHeight() - $("div.ui-header").outerHeight() 
$("#categories_canvas").height(height_canvas); 

は動作しますが、overflow-y:scrollは私のHTCの欲望(アンドロイド2.3.3)とHTCセンセーション(オンになりませんAndroid 3??? - 正確に覚えていない)、私のSamsung Galaxy Nexus(Android 4.0.2)でうまくいきます。

なぜ私は解決策を探していますか...私はいくつかのテストを行いました。オーバーフローを使用しないと、ページはスクロールしますが、フッターは固定されていません画面の下部に表示され、スクロールされた内容の固定ヘッダー/コンテンツ/フッターになります。

編集:はい、私はインターネット上の多くのページを読んでいます。オーバーフローは私のようにサポートされていないようです。だから私はヘッダーのタイトル(iOSの "戻る"ボタンのような)とインラインで、私のメニューリンクをヘッダーに置くことに決めました。私は実際には2つのリンクを持っているので、ヘッダーにそれらを置く私には3つのページがあります。お気の毒に !しかし、それは動作し、これは不可欠です;-)

答えて

1

実際にスクロールしたい場合は、iscroll 4プラグインを使用してください。それは多くのOSで動作し、開発のスピードを加速し、多くの制御を可能にします。 http://cubiq.org/iscroll-4

2

私のHTC Desireにも同じ問題がありました。試してみてください:

function set_scrollable() { 
    if(isTouchDevice()){ 

     var scrollStartPosY=0; 

     document.getElementById("categories_canvas").addEventListener("touchstart", function(event) { 
      scrollStartPosY=this.scrollTop+event.touches[0].pageY; 
      event.preventDefault(); 
     },false); 

     document.getElementById("categories_canvas").addEventListener("touchmove", function(event) { 
      this.scrollTop=scrollStartPosY-event.touches[0].pageY; 
      event.preventDefault(); 
     },false); 
    } 
} 

function isTouchDevice(){ 
     try{ 
      document.createEvent("TouchEvent"); 
      return true; 
     }catch(e){ 
      return false; 
     } 
} 
関連する問題