2011-11-24 7 views
3

iScrollをダウンロードしましたが、水平スクロールを使用しています。コンテンツと "horizo​​ntal scrolldiv"がデバイスの画面より長い場合は、スクロールしてコンテンツを水平スクロールの下に表示することはできません。 どうすれば解決できますか?これが初期化時にnullにonScrollStartを設定することによって固定することができるiScroll 4を使用している場合の例/水平スクロール水平iScrollは垂直スクロールできませんか?

+0

hScrollbarとvScrollbarの両方をtrueに設定しましたか? –

+0

ここでは例を見ることができます:http://www.bristolhotel.com/pizzeria/mobil/pizza.phpもちろん、コンピュータ上の問題は見えません。 – jessifelt

+0

これを解決したことがありますか?同じ問題がありますか? –

答えて

2

:のコードを使用してhttp://cubiq.org/iscroll:からダウンロード

例:

var scroller = new iScroll('wrapper', { onBeforeScrollStart: null }); 
+0

これは、いくつかの水平スワイプのために働いた。水平に約10回スワイプしてみてください(iPhoneで)=遅くなります。 – Arvin

3

私はこの仕事をするためにiScroll.jsをカスタマイズする必要がありました。 onBeforeScrollStart: function (e) { e.preventDefault(); },

変化に:onBeforeScrollStart: function (e) { /* e.preventDefault(); */ },


ライン106ここで私は

を行った変更(これらの行番号がiScrollのv4.1.9を参照しますのでご注意ください)


ライン100です:onTouchEnd: null,

cha NGEへ:onTouchEnd: function (e) { e.preventDefault(); },


ライン390:以下timestamp = e.timeStamp || Date.now();

挿入:if(Math.sqrt(deltaX*deltaX) > 5) { e.preventDefault(); }


は私が望んでいた場所を表示されるように、スクロールバーを取得するにはこれに加えて、私は次のことをしなければなりませんでした変更:

行218:else bar.style.cssText = 'position:absolute;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:1px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');

変更:else bar.style.cssText = 'position:relative;z-index:100;' + (dir == 'h' ? 'height:7px;bottom:7px;left:2px;right:' + (that.vScrollbar ? '7' : '2') + 'px' : 'width:7px;bottom:' + (that.hScrollbar ? '7' : '2') + 'px;top:2px;right:1px');


は、この情報がお役に立てば幸い!

var point, pointStartX, pointStartY, deltaX, deltaY; 
var scroller = new iScroll('scrollerId', { 
    vScroll: false, 
    vScrollbar: false, 
    hScrollbar: false, 
    snap: 'li', 
    momentum: false, 
    onBeforeScrollStart: function(e) { 
     point = e.touches[0]; 
     pointStartX = point.pageX; 
     pointStartY = point.pageY; 
     null; 
    }, 
    onBeforeScrollMove: function(e) { 
     deltaX = Math.abs(point.pageX - pointStartX); 
     deltaY = Math.abs(point.pageY - pointStartY); 
     if (deltaX >= deltaY) { 
      e.preventDefault(); 
     } else { 
      null; 
     } 
    } 
}); 

悲しいことに、あなたが(何らかの理由で)、彼らは手遅れに更新されるので、iScrollのabsDistXabsDistY内部に傾くことはできません。

関連する問題