2010-11-22 22 views
1

divコンテナをスクロール可能なコンテナに変換するモバイルウェブサイト用のjQueryプラグインを作成しようとしています。私はdivコンテナの中にあるすべての子を絶対配置された別のdivコンテナにラップすることでこれを達成します。次に、内側のdivの上または左のcssスタイルを変更して、テキストを上下左右に動かすようにシミュレートします。私はタッチイベントリスナーを使用してスクロールdivをいつ移動するかを決定しています。モバイルウェブサイトのjQueryスクロール可能なディビジョン

しかし、私は内側のスクロールdivの幅()を設定する際にいくつかの問題があります。コード例は次のとおりです。

myObj.ready(function(){ 
myObj.css({ 'position' : 'relative', 'overflow' : 'hidden' }).wrapInner('<div id="scrollCntr">'); 
$('#scrollCntr').prepend("<img src='scrollBar.png' id='scrollBar' class='horizontal'"); 
$('#scrollCntr').height(myObj.height()); 

if (config.width <= 0) { 
    $('#scrollCntr').children().each(function(){ 
     if ($(this).css('display') == 'inline' || $(this).css('float') == 'left' || $(this).css('float') == 'right') { 
      totalWidth += $(this).width(); 

      for(var i = 0; i < boxProps.length; i++) 
       if ($(this).css(boxProps[i]) != "") 
        totalWidth += parseInt($(this).css(boxProps[i]).replace(/px/i, '').replace(/em/i, '').replace(/pt/i, '')); 
     } 
    }); 
} else { 
    totalWidth = config.width; 
} 

console.log(totalWidth); 
$('#scrollCntr').width(totalWidth); 
console.log($('#scrollCntr').width()); 

});

この場合、config.widthは719に設定され、myObjはスクロールされるコンテナdivです。私は本当に問題が何であるかは分かりません。私は私のデモでこれに何の問題もありませんでした。私の子供たちはただの画像の要素だったのですが、それを私のモバイルウェブサイトに適用したところ、どこにdivボックスがあるのか​​、問題がありました。おそらく子供の要素が時間内に読み込まれていないのでしょうか?しかし、それは私がスクロールdivの幅を設定できない理由を説明しません。それは確実にロードされています。私は問題が何であるか分かりません。

+0

:別の質問でそれを発見しました。コンテナdivは、ユーザーによって特定の操作が行われるまでdisplay:noneに設定されます。したがって、幅を設定することはできますが、幅を取得することはできません。コンテナdivが表示されたときにリッスンするイベントハンドラを追加する方法はありますか(display:ブロック)? –

答えて

関連する問題