4

我在 jquery 中写了一个小滚动条。滚动条似乎可以在 PC 和 Mac 上完美运行。但是它不适用于触摸设备。

我想这是由于mousedown属性被调用。如何在 PC 和触摸屏设备上进行这项工作?

谢谢

$('.scroll-nav-up, .scroll-nav-down').live('click', function(){
    $('.scroller-wrap').stop();
    return false;
});


$('.scroll-nav-up').live('mousedown', function(){

    $(this).closest('.item').find('.scroller-wrap').animate({
        top: -($(this).closest('.item').find('.scroller-wrap').height() - 250)
    }, 800);

});


$('.scroll-nav-down').live('mousedown', function(){

    $(this).closest('.item').find('.scroller-wrap').animate({
        top: 0
    }, 800);

});
4

2 回答 2

1

没有发现什么特别的东西,所以此时我正在使用 2 个脚本。第一个脚本标识 Alastair Campbell 在检测基于触摸的浏览中所写的触摸屏设备。

function isTouchDevice() {
   var el = document.createElement('div');
   el.setAttribute('ongesturestart', 'return;');
   if(typeof el.ongesturestart == "function"){
      return true;
   }else {
      return false
   }
}

然后将mousedown事件用于常规浏览器并将tap事件用于触摸屏设备。

PS - 同时使用 jQuery 和 jQuery Mobile

于 2010-12-18T05:31:40.400 回答
1

如果您使用的是 jquery mobile,请尝试处理其新事件taptaphold

http://jquerymobile.com/demos/1.0a2/#docs/api/events.html

我无法对其进行测试,所以这只是一个想法(我不确定我是否了解您的应用程序的功能),但您可以尝试将 click 更改为 mouseup 事件。

于 2010-12-15T11:58:46.517 回答