移动端-模拟手势事件

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <style type="text/css">
        .touch-box{
            background-color: #444;
            color:white;
            width: 200px;
            height: 200px;
        }
    </style>
    <div id="touch-box" class="touch-box"></div>
    <script type="text/javascript">
        var bgColors=[‘#BB0D0D‘,‘#189135‘,‘#1173C0‘];
        var idx=0;
        var el=document.getElementById(‘touch-box‘);
        var startX,startY;
        function handleStart(e){
            if(e.touches.length!==1) return

            startX=e.touches[0].pageX;
            startY=e.touches[0].pageY;

            el.addEventListener(‘touchmove‘,handleMove,false);
        }
        function handleMove(e){
            var touches=e.touches;
            if(touches&&touches.length){
                var deltaX=startX-touches[0].pageX;
                var deltaY=startY-touches[0].pageY;
                if(deltaX>50){
                    console.log(‘swipeLeft‘);
                    idx=(idx+1)%3;
                    el.style.backgroundColor=bgColors[idx];
                }
                if(deltaX>-50){
                    console.log(‘swipeRight‘);
                    idx=idx>=1?idx-1:2;
                    el.style.backgroundColor=bgColors[idx];
                }
                if(deltaY>50){
                    console.log(‘swipeTop‘);
                }
                if(deltaY<-50){
                    console.log(‘swipeDown‘)
                }
                if(Math.abs(deltaX)>=50||Math.abs(deltaY)>=50){
                    el.removeEventListener(‘touchmove‘,handleMove);
                }
            }
            event.preventDefault();
        }
        el.addEventListener(‘touchstart‘,handleStart);
    </script>
</body>
</html>

分别取touchstart事件和touchmove事件中事件对象(e.touches[0])的pageX和pageY属性,相减后进行判断,判断之后记得移除touchmove事件

时间: 2024-10-07 05:28:51

移动端-模拟手势事件的相关文章

不能遗忘移动端的手势事件

一直游离在pc端开发网站,当然也偶偶将网站制作成响应式的. 但是都没有研究过移动端的手势,上次在ctrip面试的一道题目如今还深深的刻在我的脑海中: 手机上的滑动事件该怎么处理,比如常见的app向右滑动出现菜单? 今天将hammer.js研究了一下,她主要是处理移动端的手势事件的,正如她的ad:Add touch gestures to your page. 我的思路: 1.当手指往右滑动时left块向右移动 2.当手指在红色的left向左滑动时left隐藏 代码如下: <!DOCTYPE ht

移动端测试——APP元素信息[事件]操作API和APP模拟手势高级操作(4)

appium基础API 1.1 APP元素信息操作API 介绍手机端元素信息的获取以及基本的输入操作 前置代码 # 导入driver对象 from appium import webdriver import time # server 启动参数 desired_caps = {} # 设备信息(系统.版本.设备号) desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '9' desired_cap

移动端手势事件 hammer.JS插件

一.引入hammer.JS 1.下载地址:http://download.csdn.net/detail/webxiaoma/9872249 2.官网地址:http://hammerjs.github.io/examples/ 3.CDN链接:http://hammerjs.github.io/dist/hammer.min.js 二.用法 1.首先我们先写一个出发事件的DOM元素 HTML: <style type="text/css"> html, body { wid

移动端交互手势详解及实现

一丶概述      如今移动端设备大行其道,前端也走进了移动的领域.在写移动端页面的交互效果的时候,我么难免要接触一些复杂的手势,而不仅仅像pc端那样简单的鼠标事件.手势实际上是一种输入模式.我们现在在直观意义上理解的人机交互是指人与机器之间的互动方式,这种互动方式经历了鼠标.物理硬件.屏幕触控.远距离的体感操作的逐步发展的过程. 二丶移动端手势事件      在浏览器中,为我们提供的手势并不算多,主要有: touchstart 当手指触摸屏幕时触发 touchmove 当手指在屏幕滑动时不断的

移动端触摸相关事件touch、tap、swipe

一.事件定义及分类 1. click事件 单击事件,类似于PC端的click,但在移动端中,连续click的触发有200ms ~ 300ms的延迟 2. touch类事件 触摸事件,有touchstart touchmove touchend touchcancel 四种之分 touchstart:手指触摸到屏幕会触发 touchmove:当手指在屏幕上移动时,会触发 touchend:当手指离开屏幕时,会触发 touchcancel:可由系统进行的触发,比如手指触摸屏幕的时候,突然alert了

模拟tap事件和longTap事件

移动端模拟tap和longTap事件,基本原理就是在touchstart和touchend事件中,计算触摸的位移和时间差,位移在一定范围内(轻微滑动),时间小于150ms为tap事件,时间大于300ms为longTap事件. (function(){ var TOUCHSTART, TOUCHEND; if (typeof(window.ontouchstart) != 'undefined') { TOUCHSTART = 'touchstart'; TOUCHEND = 'touchend'

移动端html touch事件

诸如智能手机和平板电脑一类的移动设备通常会有一(capacitive touch-sensitivescreen),以捕捉用户的手指所做的交互.随着移动网络的发展,其能够支持越来越复杂的应用,web开发者需要一种方法来处理这些事件.例如,几乎所有的快节奏游戏都需要玩家一次按下多个按钮,这种方式,在触摸屏情况下,意味着多点触摸. Apple在iOS 2.0中引入了触摸事件API,Android正迎头赶上这一事实标准,缩小差距.最近一个W3C工作组正合力制定这一触摸事件规范. 在本文深入研究iOS和

JS—触摸事件、手势事件

JS-触摸事件.手势事件 dbclick触屏设备不支持双击事件.双击浏览器窗口,会放大画面.可以通过在head标签内加上这么一行: <meta name="viewport" content="width=device-width, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"> 可以实现,我们编写的页面不会随着用的手势而放大缩小.关于meta标签,我还没有研究过,罪过啊. mouse在触屏上

利用 Chrome 浏览器来模拟手势

现在移动端的应用可谓是越来越火爆了,随着 HTML5 和 CSS3 的诞生,那么移动端的网页也越来越普遍了,那么有时候开发人员制作移动网页的时候,有时候要模拟手机的手势来测试自己写的程序代码,却苦苦寻求不到自己合适的模拟器.那么在这里我将介绍一种谷歌触屏模拟器的插件,让开发者更好的开发自己的手机端的网页.   操作一: 按下键盘按键 F12 调出控制台:   操作二: 操作三: 此时放在网页的任意处如果出现一个黑色的小圆点,那么调用成功,此时你就可以模拟你的手指进行操作.   利用 Chrome