首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用库Hammer.js

无法使用库Hammer.js
EN

Stack Overflow用户
提问于 2019-06-17 12:45:14
回答 3查看 599关注 0票数 2

我正在使用sublimeText3在Windows上使用hammer.min.js库执行一个带有手势的应用程序。

我从https://hammerjs.github.io/下载了hammer.min.js,将它放在我的项目文件夹中,然后调用它,但是什么也没有发生。我尝试在HTML5上使用<script type="text/javascript" src="libraries/hammer.min.js"></script>导入锤子库。我也尝试过使用"npm install --save hammerjs“来安装锤子库,但似乎都不起作用。

代码语言:javascript
复制
"HTML file: index.html"

<!DOCTYPE html>

<!DOCTYPE html>
<html>
<head>
    <title>Prueba de Apps Web</title>
    <link rel="stylesheet" type="text/css" href="screen.css" />
</head>
<body>
    <div id="panelGestos"></div>
    <hl id ='info'> gesto ! </hl>

    <script type="text/javascript" src="gestos.js"></script>
    <script type="text/javascript" src="libraries/hammer.min.js"></script>
</body>
</html>
代码语言:javascript
复制
"CSS file: screen.css"

body{
    background: lightblue;
}
#panelGestos {
  background: darkgreen;
  height: 300px;
  text-align: center;
  font: 30px/300px Helvetica, Arial, sans-serif;
}

#info{
    color: black;
    font-size: 2em;
    margin-top: 10px;
    text-transform: uppercase;
}
代码语言:javascript
复制
"JS file: gestos.js"

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

// create a simple instance
// by default, it only adds horizontal recognizers
var hammertime = new Hammer(panelGestos);

// listen to events...
hammertime.on('tap doubletap pan swipe press pinch rotate', function (ev) {
    document.querySelector('#info').innerHTML = ev.type + '!';

hammertime.on("panleft panright tap press", function (ev) {
    panelGestos.textContent = ev.type +" gesture detected.";
});

使用锤子库,我想得到消息“检测到左转手势”、“检测到右转手势”、“检测到轻击手势”。或“检测到按下手势”。

EN

回答 3

Stack Overflow用户

发布于 2019-06-17 12:56:27

由于您在gestos.js中使用Hammer,因此需要确保hammer.min.jsgestos.js之前加载了first。交换脚本文件的顺序:

你有

代码语言:javascript
复制
<script type="text/javascript" src="gestos.js"></script>
<script type="text/javascript" src="libraries/hammer.min.js"></script>

当它应该是:

代码语言:javascript
复制
<script type="text/javascript" src="libraries/hammer.min.js"></script>
<script type="text/javascript" src="gestos.js"></script>

或者,您可以将代码包装在gestos.js中的窗口加载事件的回调中。

顺便说一句,当你遇到问题时,你真的应该检查一下控制台,因为它可能会显示一些信息,比如"Hammer is not defined“。

票数 3
EN

Stack Overflow用户

发布于 2019-06-17 12:57:11

我想你必须等到hammer.min.js加载完成。您正在尝试从gestos.js调用new Hammer(panelGestos),它似乎是在hammer.min.js完全加载之前运行的。

票数 0
EN

Stack Overflow用户

发布于 2019-06-18 14:16:47

在最开始的时候,感谢你的回复。我遵循了你的建议,在尝试了其他东西后,它对我起作用了。首先,我从https://github.com/hammerjs/hammer.js/tree/master/https://hammerjs.github.io/下载了hammer库,并按照Joshua的提示导入它们(一次一个)以使用所有的库函数。我不知道为什么,但从这些链接看起来这是一个库的问题。然后,我尝试了使用锤子web库的<script src="https://hammerjs.github.io/dist/hammer.js"></script>,这就是全部!这对我很管用。很抱歉做了大量的解释,但我希望它也能对任何人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56624837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档