Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个javascript手势库可以与三星galaxy标签一起使用?_Javascript_Jquery_Swipe_Gestures - Fatal编程技术网

是否有一个javascript手势库可以与三星galaxy标签一起使用?

是否有一个javascript手势库可以与三星galaxy标签一起使用?,javascript,jquery,swipe,gestures,Javascript,Jquery,Swipe,Gestures,我一直在试验javascript手势库。不过,当我在我的三星Galaxy标签(GT-P7510,安卓4.04)上试用它们时,它们在iPad mini上的效果都非常好,充其量只能是间歇性的 我得到的最佳结果是在纵向模式下。在横向模式下,几乎什么都不起作用 除其他外,我尝试了以下库,所有这些库都是我在本文中找到的: hammer.js quo.js 敏感的 双击 jgestures 触摸屏 TouchSweep工作得最好,但其他所有人都没有真正发挥作用 Hammer页面有一个演示,它可以在ipa

我一直在试验javascript手势库。不过,当我在我的三星Galaxy标签(GT-P7510,安卓4.04)上试用它们时,它们在iPad mini上的效果都非常好,充其量只能是间歇性的

我得到的最佳结果是在纵向模式下。在横向模式下,几乎什么都不起作用

除其他外,我尝试了以下库,所有这些库都是我在本文中找到的:

  • hammer.js
  • quo.js
  • 敏感的
  • 双击
  • jgestures
  • 触摸屏
TouchSweep工作得最好,但其他所有人都没有真正发挥作用

Hammer页面有一个演示,它可以在ipad上正常工作,但在android上却不行:

那么,有没有人知道我有什么方法可以在我的银河系上玩得很好


我已经查看了以前的stackoverflow问题所指向的quirksmode页面,但从我看到的情况来看,该页面已经过时,不再维护。而且,它实际上没有提到任何图书馆。

我很幸运地发现了这一个:

它有长时间的按下、捏、旋转和滑动手势,代码也很容易定制


请注意,需要处理手势的组合——例如,刷卡几乎总是会触发长时间触摸,因此您必须设置标志或以其他方式进行处理。

这里是一个代码笔手势比较工具

在做了大量工作之后,我们放弃了Hammer.JS,搬到了我们认为还可以的地方。事情可能已经改变了,现在也不一样了

  document.head.insertAdjacentHTML( 'beforeEnd', '<meta name="viewport" content="target-densitydpi=device-dpi,width=device-width,initial-scale=1.0" />' );

$(function(){
  //initialization 
  $(".detector").bind("click touchstart",function(e){
    $(".detector").removeClass("selected");
    $(this).addClass("selected");

    unbindLibrary();
    bindLibrary($(this).prop("id"));
  });

  //bind library to gesture pad
  bindLibrary = function(id){
    var $pad = $("#gesture-pad");
    var events = [];
    var eventStr = "";
    $("#" + id + "List li").each(function(){
      events.push($(this).text());
    })
    //make target event list from each library's gestureList
    eventStr = events.join(" ");

    switch(id){
      case "hammer":
        hammer = Hammer($pad.get(0), {
          prevent_default: true
        })
        .on(eventStr, logEvent);
        break;
      case "quojs":
        for(var i = 0;i<events.length;i++){
          $$("#gesture-pad").on(events[i], logEvent);
        }
        $$("#gesture-pad").on("touchstart",function(e){
          e.preventDefault();
        });
        break;
      case "touchSwipe":
        var options = {};
        var touchSwipeHandler = function(name){
          if(name.indexOf("pinch") < 0){
            return function(event, distance, duration, fingerCount){ 
                     var e = {}; e["type"] = name; logEvent(e);        
                   };
          }else{
            return function(e, direction, distance, d, f, pinchZoom){ 
                     var e = {}; e["type"] = name; logEvent(e);        
                   };
          }
        };

        for(var i = 0;i<events.length;i++){
            options[events[i]] = new touchSwipeHandler(events[i]); 
        }
        $pad.swipe(options);
        break;
      case "touchy" :
        var handler = function(name){
            return function(event, phase, $target, data){
                     var e = {}; e["type"] = name; logEvent(e);
                   }
        }
        for(var i = 0;i<events.length;i++){
            $pad.bind(events[i],new handler(events[i]));
        }
        break;      
    }
  }

  //unbind library from gesture pad
  unbindLibrary = function(){
    var element = $("#gesture-pad").clone();
    $("#gesture-pad").replaceWith(element);
    $(".gesturelist .selected").removeClass("selected");
  }

  //log detected gesture
  logEvent = function(e){
    $("#detected").text(e.type);
    var selected = $(".detector.selected").prop("id");
    $("#" + selected + "List li").each(function(){
        if($(this).text() == e.type){
            $(this).addClass("selected");
`enter code here`        };
    })          
    return false;
  }

  $(".detector").first().addClass("selected");
  bindLibrary($(".detector.selected").prop("id"));

})
document.head.insertAdjacentHTML('beforeed','';
$(函数(){
//初始化
$(“.detector”).bind(“单击touchstart”,函数(e){
$(“.detector”).removeClass(“选定”);
$(此).addClass(“选定”);
解除绑定库();
bindLibrary($(this.prop(“id”));
});
//将库绑定到手势板
bindLibrary=函数(id){
var$pad=$(“#手势pad”);
var事件=[];
var eventStr=“”;
$(“#”+id+“List li”)。每个(函数(){
events.push($(this.text());
})
//从每个库的手势列表中创建目标事件列表
eventStr=events.join(“”);
开关(id){
“锤子”一案:
锤子=锤子($pad.get(0){
阻止默认值:true
})
.on(eventStr,logEvent);
打破
案例“quojs”:

对于(var i=0;i我知道这是一个老问题,但我尝试了几个库,但对其中任何一个都不满意,所以推出了我自己的。它是麻省理工学院许可的,在

带有测试/演示页面

我经常在Galaxy S4手机、几台iPad和几台Windows 8触摸屏设备上使用它。我们在工作中使用它制作软件


错误报告(附示例)欢迎。

你已经在使用javascript库了吗?现在我正在做一个jQuery UI项目,为了增加手势功能,我使用了“jQuery UI触摸穿孔”,它在iPad和Android上运行得非常好。我对新的sencha框架感到震惊,我想它的核心仍然是Ext JS……我想这个问题很可能是结束:见抱歉,但我不同意。元讨论中陈述的论点不适合这里。首先,我还没有收到答案!关于触摸打孔,我不知道如何使用它来实现刷卡手势。如果我有一个现有的操作,如拖放,我想与平板电脑一起工作,但我想要在没有现有操作的情况下使滑动工作,请在图像上滑动以获得下一个图像。诸如此类。此外,如果您还没有尝试过,请查看repo中的开发分支--它的更新帮助我获得了+1的实际答案!我将在今晚进行实验,并让您知道我的进展情况。是的!最后!Th事实上,at是有效的。非常感谢你为我指明了正确的方向。即使我改变方向,它也能起作用。