javascript - 在 iPhone 和 Android 上通过 JavaScript 检测手指滑动

标签 javascript iphone android swipe

您如何检测到用户在使用 JavaScript 的网页上朝某个方向滑动手指?

我想知道是否有一种解决方案适用于 iPhone 和 Android 手机上的网站。

最佳答案

简单的原生 JS 代码示例:

document.addEventListener('touchstart', handleTouchStart, false);        
document.addEventListener('touchmove', handleTouchMove, false);

var xDown = null;                                                        
var yDown = null;

function getTouches(evt) {
  return evt.touches ||             // browser API
         evt.originalEvent.touches; // jQuery
}                                                     
                                                                         
function handleTouchStart(evt) {
    const firstTouch = getTouches(evt)[0];                                      
    xDown = firstTouch.clientX;                                      
    yDown = firstTouch.clientY;                                      
};                                                
                                                                         
function handleTouchMove(evt) {
    if ( ! xDown || ! yDown ) {
        return;
    }

    var xUp = evt.touches[0].clientX;                                    
    var yUp = evt.touches[0].clientY;

    var xDiff = xDown - xUp;
    var yDiff = yDown - yUp;
                                                                         
    if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
        if ( xDiff > 0 ) {
            /* right swipe */ 
        } else {
            /* left swipe */
        }                       
    } else {
        if ( yDiff > 0 ) {
            /* down swipe */ 
        } else { 
            /* up swipe */
        }                                                                 
    }
    /* reset values */
    xDown = null;
    yDown = null;                                             
};

在 Android 中测试。

关于javascript - 在 iPhone 和 Android 上通过 JavaScript 检测手指滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264072/

相关文章:

android - 在 ListView 中禁用项目焦点

android - new OnClickListener(){} 类型的 onClick(View) 方法必须覆盖或实现父类(super class)型方法

javascript - 未在 <script> block 内解析的 JSF 组件

javascript - JS : What is the cleanest way of finding the highest value from an object and return its key?

iphone - 在 iPhone 上拆分字符串前缀的数字

ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?

javascript - HTML 保存指向文件的链接并在以后使用它们链接

javascript - $(window).focus() 在 Chrome 中未正确执行

ios - 支持 CMSensorRecorder 的设备

android - 在 Android Java 应用程序中使用 Kotlin AAR 时出现 java.lang.NoClassDefFoundError