この質問は、このSOの質問に関する詳細な議論の後に尋ねられました
問題:
デスクトップでマウスドラッグを使用してスクロールし、タッチ対応画面でイベントをスワイプできる水平スクロールが必要です
考えられる解決策:
デスクトップでは正常に動作しますが、タッチ対応デバイスでは動作しない jQuery dragscrollable を使用してみました
そこで、Touch Swipe Jquery Pluginの調査に進み、 JSFiddle コードで可能な解決策を思いつきました。JSFiddle の結果は、ここで見つけることができます。
また、動作するデモをここで見つけることができます
私のJavaスクリプトコードは次のとおりです
//to detect if device has touch enabled
var is_touch_device = 'ontouchstart' in document.documentElement;
$(function()
{
$('.myClass').dragscrollable();
//if touch is enabled then we have to map the swipe event
if(is_touch_device)
$('.panel_list').swipe( { swipeStatus:scroll_panel_list, allowPageScroll:'horizontal' } );
function scroll_panel_list(event, phase, direction, distance)
{
var pos = $('.myClass').scrollLeft();
if(direction == 'left')
{
$('.myClass').animate({scrollLeft: pos + 200} );
}
if(direction == 'right')
{
$('.myClass').animate({scrollLeft: pos - 200} );
}
}
});
Android ブラウザでは問題なく動作することをテストしましたが、iPhone ではあまり反応しません。
誰かがより良い解決策を考え出すのを手伝ってくれますか? Twitterブートストラップを使用しています
編集:1
さて、デスクトップとタッチ対応デバイスで正常に動作するように見える素敵なプラグインを見つけたのではないかと思います。プラグインはjquery.dragscrollと呼ばれ、更新されたデモがここにあります
編集:2
タッチ対応デバイスをサポートする別のプラグインがあるようで、 Overscrollと呼ばれます。まだ評価してない