当前位置: 首页 > 面试题库 >

通过iPhone和Android上的JavaScript检测手指滑动

梁承恩
2023-03-14
问题内容

您如何使用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 ) {
            /* left swipe */ 
        } else {
            /* right swipe */
        }                       
    } else {
        if ( yDiff > 0 ) {
            /* up swipe */ 
        } else { 
            /* down swipe */
        }                                                                 
    }
    /* reset values */
    xDown = null;
    yDown = null;                                             
};

在Android上测试



 类似资料:
  • 问题内容: 如果网站在ipad Safari或应用程序WebView中运行,是否可以通过JavaScript进行区别? 问题答案: 这里使用的组合和。它可以区分与iOS Web应用程序有关的所有四个状态:Safari(浏览器),独立(全屏),uiwebview,而不是iOS。

  • 问题内容: 如何使用Android和iPhone的javascript检测长按压力?本机javascript或jquery … 我想要听起来像: 问题答案: 使用“触摸结束”检测长时间触摸的问题是,如果您希望事件在一定时间后触发,则它将无法正常工作。最好在触摸开始时使用计时器,并在触摸结束时清除事件计时器。可以使用以下模式:

  • 问题内容: 我对javascript不太熟悉,但是我认为这是实现我的目标的最佳方法。如果没有,请纠正我。 我最后有一个许可证文本2按钮。所有这些都是用HTML编写的,因为许可证中有一些链接。现在,我希望当用户单击中的“确定”按钮时,这会触发一些我可以在Java中抓取的JavaScript或侦听器以触发应用程序中的前进。(“取消”按钮的作用相反,但是如果我知道一种方法,我可以做另一种。) 这会给某人

  • 问题内容: 我需要javascript来检测每个浏览器换行的文本并将其换成。 我碰到过很多文章,都在讨论如何测量每个单词的y轴,但还没有一个可靠的解决方案。 到目前为止,这就是我所拥有的。在Jsfiddle上看到它。 HTML JS / jQuery CSS ​ 问题答案: 首先我必须承认,我认为这将是一项艰巨的任务,因为无法通过任务浏览器告诉您自动换行符发生在何处。 我创建了一个解决方案,首先将

  • 这段代码实现类似水果忍者应用中,用户手指在屏幕上划动时出现划痕轨迹的效果,有兴趣的朋友可以研究一下。 [Code4App.com]

  • 我在ViewDid中有一个动画,如下所示 它只是从屏幕顶部创建小正方形,然后移动到底部。我还有一个UIImageView,它由x轴上的加速计控制。目标不是接触动画对象。就像一个简单的比赛游戏。然而,我无法找到如何检测imageView和动画之间的冲突?