我正在使用锤子进行拖动,并且在加载其他东西时它会变得不稳定,正如此警告消息告诉我的那样.
由于主线程忙,"touchstart"输入事件的处理延迟了X ms.考虑将事件处理程序标记为"被动"以使页面更具响应性.
所以我试着像这样向听众添加"被动"
Hammer(element[0]).on("touchstart", function(ev) {
// stuff
}, {
passive: true
});
Run Code Online (Sandbox Code Playgroud)
但我仍然收到这个警告.
我正在开发一个简单的angular2项目,我正在尝试将Material Design导入到我的项目中,但是有些组件工作不正常,并且控制台警告说:
找不到HammerJS.某些Angular Material组件可能无法正常工作.
我已经hammerjs
安装了@angular/material
.我该如何解决这个问题?
我的项目可以在这个github回购中找到
值得注意的是,如果您已经hammerjs
安装并且组件仍未正确呈现以确保您使用的是angular material
组件而不是带有materialize-css
类的 html元素.如果你正在使用materialize-css
的不是angular material
,你需要将它单独添加到您的项目.
我在项目中使用了角度材质.我收到这个警告:
找不到HammerJS.某些Angular Material组件可能无法正常工作.
"longpress"事件无法绑定,因为未加载Hammer.JS且未指定自定义加载程序.
我知道这是这个问题的重复
他们在答案中提到:
"^2.0.8",
到dependencies
在的package.json文件.'hammerjs/hammer';
在 polyfills.ts文件中导入.在我的情况下一切都很好,我仍然在浏览器控制台中收到相同的警告.
我正在尝试使用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) 我找到了一个有趣的资源: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)
我在使用带有Angular2的HammerJS时遇到了问题.我有一个旋转木马(基于带有Angular2事件处理程序的bootstrap轮播),我正在听左侧滑动并向右滑动事件.滑动本身完美无缺.问题是,因为我使用HammerJS,我不能在我的轮播组件上向上/向下滚动,因为它是一个完整的视口大小的项目,这是一个很大的问题.
如何解决这个问题?
平台:
Angular2 2.1.2
三星Galaxy S2搭载Android 5.1.1
谷歌Chrome for Android:54.0.2840.85
我收到错误: 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中.我该怎么办?
我正在使用hammerjs 来检测小型Angular 8 应用程序上的滑动。
我关注了这篇文章 - https://medium.com/angular-in-depth/gestures-in-an-angular-application-dde71804c0d0 - 我将hammerjs与@angular/platform-browser一起使用。
然而,当 3 天前 Angular 9 发布时 - 我更新没有问题,但现在刷卡检测根本不起作用:( ...没有看到错误或警告。另外 - 没有看到任何平台注释 -更新发行说明中的浏览器更改。
任何想法出了什么问题以及如何解决它?
我正在使用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) 我为我的活动实现了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%的工作溶剂.请帮忙...