Hammer.js 滑动不适用于旋转的 iframe

Posted

技术标签:

【中文标题】Hammer.js 滑动不适用于旋转的 iframe【英文标题】:Hammer.js swipe does not working on rotated iframe 【发布时间】:2020-11-14 15:35:24 【问题描述】:

我在页面上制作了一个 iframe 并通过变换对其进行了旋转。

    body.rotate iframe 
        transform: rotate(90deg);
        transform-origin: top right;
        position: absolute;
        top: 100%;
        right: 0;
        height:100vw;
        min-width:100vh;
    

并尝试在 iframe 中的页面上添加滑动事件。

    var el = document.getElementById('swipe');
    Hammer(el).on('swipeleft', next);
    Hammer(el).on('swiperight', prev);
    Hammer(el).on('doubletap', preview);

当我在旋转的 iframe 中双击 div#swipe 时,会触发 preview()。但是向左滑动和向右滑动不起作用。

【问题讨论】:

如果你双击div#swipe 在没有旋转的情况下,它会起作用吗? doubletap 始终有效,但当 iframe 旋转时,swipeleft 和 swiperight 无效。 【参考方案1】:

请遵循本指南。

var el = document.getElementById('swipe');
var mc = new Hammer(el);
mc.get('pan').set( direction: Hammer.DIRECTION_ALL );
Hammer(el).on('swipeleft', next);
Hammer(el).on('swiperight', prev);
Hammer(el).on('doubletap', preview);

【讨论】:

以上是关于Hammer.js 滑动不适用于旋转的 iframe的主要内容,如果未能解决你的问题,请参考以下文章

Hammer.js 在 Angular 中向左滑动手势动画

ngFor 与 Angular 7 中的 Hammer JS 滑动功能

hammer.js中的rotate旋转事件为啥没有效果

jquery.hammer.js 在 android 上崩溃,但在 ios 上运行良好

hammer.js使用

hammer.js 拖动不开始'直到手指停止在 ipad 屏幕上