首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么hammer.js刷卡不适用于iPhone

问为什么hammer.js刷卡不适用于iPhone
EN

Stack Overflow用户
提问于 2019-08-30 06:11:04
回答 3查看 1.3K关注 0票数 1

我找不到更直接的方式来询问熟悉hammer.js的人,所以我在这里发帖。

因此,我一直在开发一个8 8thwall的web应用程序,使用hammer.js进行扫描/滚动。我一直在三星10上测试它,直到现在才在iphones上测试。对我的三星10来说,滑动/滚动一直运行得很好,但对iphones却不起作用,我可以把手放在iphones上。我试过iphone 8+,iphone,iPhone6s。请告诉我该怎么做。谢谢。

我的密码:

代码语言:javascript
复制
 //SCROLLING FUNCTION
    AFRAME.registerComponent('scroll-lines', {
        init: function(){
            var container = document.getElementById("scrolling-container");
            var content = document.getElementById("button-collections");
            var hammer = new Hammer(container);

            var initialX = 0;
            var deltaX = 0;
            var offset = initialX + deltaX;

            hammer.on("panleft panright", function(ev) {
                deltaX = ev.deltaX;
                offset = initialX + deltaX;

                container.scroll(-offset, 0);
            });

            Hammer.on(container, "mouseup", function(e) {
                initialX = offset;
            });
        }
    })

<!--SCROLLING BUTTONS-->
<!--IN ORDER FOR THESE TO BE DISPLAYED NEED TO STYLE THE Z-INDEX: 10. REFER style.css PAGE-->
<div id="scrolling-container">
    <div id="button-collections">
        <div id="box-all" class="cantap"></div>
        <div id="box-seremban" class="cantap"></div>
        <div id="box-klang" class="cantap"></div>
        <div id="box-ampang" class="cantap"></div>
        <div id="box-petaling" class="cantap"></div>
        <div id="box-kj" class="cantap"></div>
        <div id="box-ekspres" class="cantap"></div>
        <div id="box-transit" class="cantap"></div>
        <div id="box-monorail" class="cantap"></div>
        <div id="box-kajang" class="cantap"></div>
        <div id="box-skypark" class="cantap"></div>
    </div>
</div>

CSS:

代码语言:javascript
复制
#scrolling-container{
    z-index: 10;
    position: absolute;
    display: flex;
    top: 55%;
    width: 100%;
    cursor: pointer;
    background-color: red;
}
#button-collections{
   display: flex;
   flex-direction: horizontal;
   overflow: scroll;
   height: 150px;
   padding-top: 170px;
   width: 100%;
}

更新:我尝试了下面的建议,但它们没有解决问题。我发现,如果我使用var hammer = new (容器);它适用于android而不是iOS,但如果我使用var hammer = new (Content);它对两者都有效,但在mouseup函数中,我不能同时滚动到iOS和android的末尾。使用pan左侧,panright,panend

更新2:既然锤子在iphone上工作,我的问题就得到了某种程度的回答。封闭的问题。为当前形势打开一个新的后续问题

EN

回答 3

Stack Overflow用户

发布于 2019-08-30 08:32:10

你确定要用平底锅吗?平底锅基本上是用来拖拉的。Swipe在swipe中被称为hammer.js。它可能是在android上触发了正确的手势,而不是在iphone上。如果你的手指移动快,这是一个滑动,不会被识别为一个锅。另外,你应该使用的是mouseup,而不是panend (因为可能安卓会启动鼠标,而iphone则不会)。

与泛欧议会可能发生的事件如下:

  • 泛启动
  • 泛移
  • 潘伦德
  • 薄煎饼
  • 板左
  • 惊吓
  • 帕拉普
  • 潘顿
票数 0
EN

Stack Overflow用户

发布于 2019-08-30 08:37:56

尝试使用旋转和滑动事件而不是pan事件。

票数 0
EN

Stack Overflow用户

发布于 2019-09-03 03:45:32

如果没有在元素上定义的cursor,iOS就不会触发mousedown或mouseup客户端事件,这些事件是滑动所需的。见How to make my 'click' function work with iOS。

在检测到ios-device并使用以下样式时,将类<body>分配给iOS。

代码语言:javascript
复制
body.ios-device {
    cursor: pointer !important; /* iOS click events don't fire without this! */
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57721356

复制
相关文章

相似问题

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