这个问题是在这个SO问题的详细讨论后提出的。
问题:
我需要一个水平滚动条,可以在桌面上使用鼠标拖动,在触摸屏上使用滑动事件进行滚动。
可能的解决方案:
我尝试使用jQuery dragscrollable,在桌面上工作正常,但在触摸设备上无法使用。
然后我开始探索Touch Swipe Jquery Plugin,并提出了一个可能的解决方案JSFiddle Code,JSFiddle的结果可以在这里找到。
你也可以在这里找到一个工作演示。
我的JavaScript代码如下:
//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 Bootstrap。
编辑:1
现在我想我可能找到了一个很好的插件,它似乎在台式机和触摸设备上都能正常工作,该插件称为jquery.dragscroll,我更新了演示here。
编辑:2
似乎还有另一个支持触摸设备的插件,它被称为Overscroll。我还没有评估过它。