标签: hammer.js

考虑将事件处理程序标记为"被动"以使页面更具响应性

我正在使用锤子进行拖动,并且在加载其他东西时它会变得不稳定,正如此警告消息告诉我的那样.

由于主线程忙,"touchstart"输入事件的处理延迟了X ms.考虑将事件处理程序标记为"被动"以使页面更具响应性.

所以我试着像这样向听众添加"被动"

Hammer(element[0]).on("touchstart", function(ev) {
  // stuff
}, {
  passive: true
});
Run Code Online (Sandbox Code Playgroud)

但我仍然收到这个警告.

javascript jquery touch angularjs hammer.js

205
推荐指数
7
解决办法
16万
查看次数

Angular 2 - '找不到HammerJS'

我正在开发一个简单的angular2项目,我正在尝试将Material Design导入到我的项目中,但是有些组件工作不正常,并且控制台警告说:

找不到HammerJS.某些Angular Material组件可能无法正常工作.

我已经hammerjs安装了@angular/material.我该如何解决这个问题?

我的项目可以在这个github回购中找到



边注

值得注意的是,如果您已经hammerjs安装并且组件仍未正确呈现以确保您使用的是angular material 组件而不是带有materialize-css 类的 html元素.如果你正在使用materialize-css的不是angular material,你需要将它单独添加到您的项目.

javascript hammer.js material-design angular

86
推荐指数
4
解决办法
6万
查看次数

在角度6中找不到HammerJS

我在项目中使用了角度材质.我收到这个警告:

找不到HammerJS.某些Angular Material组件可能无法正常工作.

"longpress"事件无法绑定,因为未加载Hammer.JS且未指定自定义加载程序.

我知道这是这个问题的重复

他们在答案中提到:

  1. 我们必须添加"^2.0.8",dependencies的package.json文件.
  2. 'hammerjs/hammer';polyfills.ts文件中导入.

在我的情况下一切都很好,我仍然在浏览器控制台中收到相同的警告.

hammer.js angular-material angular

44
推荐指数
3
解决办法
3万
查看次数

使用Hammer.js捏缩放

我正在尝试使用hammer.js实现捏缩放

这是我的HTML-

 <script src="//cdnjs.cloudflare.com/ajax/libs/hammer.js/1.0.5/hammer.min.js"></script>

<div id="pinchzoom">
        <div>
            <img id="rect" src="http://blog.gettyimages.com/wp-content/uploads/2013/01/Siberian-Tiger-Running-Through-Snow-Tom-Brakefield-Getty-Images-200353826-001.jpg" width="2835" height="4289" ondragstart="return false" alt="" />
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我的脚本

var hammertime = Hammer(document.getElementById('pinchzoom'), {
        transform_always_block: true,
        transform_min_scale: 1,
        drag_block_horizontal: false,
        drag_block_vertical: false,
        drag_min_distance: 0
    });

    var rect = document.getElementById('rect');

    var posX=0, posY=0,
        scale=1, last_scale,
        rotation= 1, last_rotation;

    hammertime.on('touch drag transform', function(ev) {
        switch(ev.type) {
            case 'touch':
                last_scale = scale;
                last_rotation = rotation;
                break;

            case 'drag':
                posX = ev.gesture.deltaX;
                posY = ev.gesture.deltaY;
                break;

            case 'transform':
                rotation = last_rotation + ev.gesture.rotation;
                scale …
Run Code Online (Sandbox Code Playgroud)

javascript jquery pinchzoom hammer.js

33
推荐指数
3
解决办法
4万
查看次数

如何使用锤子滑动

我找到了一个有趣的资源:Hammer.js.我试着用Hammer和jQuery刷卡.

1)我在这里下载了代码
2)我已将该代码放在文档中.我在文档的头部放了一个链接到我要用的软键:<script src="hammer.js"></script>
3)我不知道如何使用它.我尝试在jQuery中做类似的事情.我的意思是我想滑动而不是点击:

$(function(){
    $(".blue").click(function() {
        $(".blue").animate({left: "0"}, 500)    
    });
}) 
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Narcis/rmtXC/

javascript jquery swipe hammer.js

30
推荐指数
3
解决办法
7万
查看次数

垂直滚动不适用于HammerJS和Angular2

我在使用带有Angular2的HammerJS时遇到了问题.我有一个旋转木马(基于带有Angular2事件处理程序的bootstrap轮播),我正在听左侧滑动向右滑动事件.滑动本身完美无缺.问题是,因为我使用HammerJS,我不能在我的轮播组件上向上/向下滚动,因为它是一个完整的视口大小的项目,这是一个很大的问题.

如何解决这个问题?

平台:
Angular2 2.1.2
三星Galaxy S2搭载Android 5.1.1
谷歌Chrome for Android:54.0.2840.85

carousel hammer.js angular

29
推荐指数
2
解决办法
5891
查看次数

hammer.js对象没有方法addEventListener

我收到错误: Uncaught TypeError: Object [object Object] has no method 'addEventListener' hammer.js:168

我的代码是这样的:

<script type="text/javascript" src="js/hammer.js"></script>
Run Code Online (Sandbox Code Playgroud)

设备就绪功能:

 var resim = $('#kaydir');

 Hammer(resim).on('swipeleft', function(ev){
     console.log('left: ', ev);
 });
Run Code Online (Sandbox Code Playgroud)

似乎错误在hammer.js中.我该怎么办?

javascript hammer.js

15
推荐指数
1
解决办法
1万
查看次数

Angular:当从 8 更新到 9 时-hammerjs + @angular/platform-b​​rowser 停止工作

我正在使用hammerjs 来检测小型Angular 8 应用程序上的滑动。

我关注了这篇文章 - https://medium.com/angular-in-depth/gestures-in-an-angular-application-dde71804c0d0 - 我将hammerjs与@angular/platform-b​​rowser一起使用。

然而,当 3 天前 Angular 9 发布时 - 我更新没有问题,但现在刷卡检测根本不起作用:( ...没有看到错误或警告。另外 - 没有看到任何平台注释 -更新发行说明中的​​浏览器更改。

任何想法出了什么问题以及如何解决它?

hammer.js angular

14
推荐指数
1
解决办法
6164
查看次数

使用Hammer.js时,Mobile Safari崩溃了

我正在使用Javascript for iPad进行多人游戏.我在多人游戏中使用Smartfox Server,在触摸事件中使用Hammer.js.

我有一个问题,当我在游戏的某个特定部分使用Hammer事件时,它会崩溃Mobile Safari.它在PC上完全正常,但在iPad上它会导致崩溃.

这是我的代码的一部分:

this.startButton.hammer().on("tap", this.handleStartClicked);
Run Code Online (Sandbox Code Playgroud)

我在"handleStartClicked"函数中所做的就是从输入框中获取用户的名称和密码,将它们保存到本地存储(如果可用),并调用Smartfox"connect"函数,该函数将用户连接到Smartfox并开始登录处理.这是功能:

onStartClicked:function(e){
  if(this.nameInput.val() == "" || this.pwInput.val() == "") {return;}

  this.startButton.unbind("click", this.onStartClickBind);

  if(window.localStorage != null && window['localStorage'] != null){
    window.localStorage.username = this.nameInput.val();
    window.localStorage.password = this.pwInput.val();
  }

  this.sfs.connect();
Run Code Online (Sandbox Code Playgroud)

}

如果我单击开始按钮,Mobile Safari会在大约80%的时间内崩溃.即使它没有立即在该点击上崩溃,它通常会在游戏后期的某个时刻崩溃.但是,如果我从不单击开始按钮(例如,如果我只是在没有触摸交互的情况下自动启动用户),则崩溃永远不会发生 - 即使在游戏的后期点也不会发生.我甚至试图完全删除开始按钮,只是将触摸监听器添加到整个文档正文,它仍然崩溃,所以它似乎与按钮没有任何关系(它只是一个普通的HTML按钮包裹在一个jQuery对象).

奇怪的是,如果我将Hammer.js事件更改为常规jQuery事件:

this.startButton.bind("click", this.onStartClickBind);
Run Code Online (Sandbox Code Playgroud)

移动Safari永远不会崩溃.不是在开始点击...不是在游戏中的任何一点.它似乎解决了一切.另一个奇怪的事情是我在我的代码的其余部分使用Hammer事件,但它似乎是一个问题的唯一地方就是这个处理程序.我不知道游戏中这个处理程序与其他处理程序有什么不同,除非崩溃与Mobile Safari,Hammer.js和Smartfox之间的交互有所不同.我在游戏中的其他Hammer处理程序上发送了对Smartfox的调用,但它们并没有让Safari崩溃,所以这似乎不太可能.

此外,我在下面有iPad的崩溃日志,如果这个问题在这个问题上有所了解:

Incident Identifier: 540C3060-271F-468E-9DF8-DA641DACA406
CrashReporter Key:   a5c833f7168137e99d3c8aa6a4d35804a584b7b4
Hardware Model:      iPad3,1
Process:             Web [210]
Path:                /var/mobile/Applications/327316BD-8A50-4245-B728-  
E6504C19A76D/Web.app/Web
Identifier:          com.apple.webapp
Version:             1.0 (1.0)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2014-01-13 14:01:50.112 -0800
OS …
Run Code Online (Sandbox Code Playgroud)

javascript crash mobile-safari ipad hammer.js

13
推荐指数
1
解决办法
648
查看次数

Hammer.js事件优先级

我为我的活动实现了hammer.js库.问题是同时触发多个事件.

我可以设置一些事件优先级.让我们说当转换完成时,所有其他事件都会被忽略.当转换停止时,可以完成其他事件.

    hammertime.on("transform", function(evt) {
      //transform
    }

    hammertime.on("drag", function(ev) {
       //drag
    }
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这样的事情:当我们开始转换时禁止拖拽

 hammertime.on("transform", function(evt) {
          //transform
          hammertime.options.drag="false";
}
Run Code Online (Sandbox Code Playgroud)

在变换完成后让它恢复原状

 hammertime.on("transformend", function(evt) {
          //transformend
          hammertime.options.drag="true";
 }
Run Code Online (Sandbox Code Playgroud)

这种方法工作正常,除了某些时候拖动不会返回设置为true.我想要100%的工作溶剂.请帮忙...

javascript events hammer.js

12
推荐指数
1
解决办法
5675
查看次数