js 触摸事件 touch

先上实例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>touch</title>

    <style type="text/css">
        body{
            height: 100%;
            margin: 0;
            padding: 0;
        }
        #canvas{
            position: relative;
            width: 100%;
            height: 1000px;
        }

        .spirit {              /* 方块的class名称*/
            position: absolute;
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>

</head>
<body>
    <div id="canvas"></div>
    <script type="text/javascript">
        var canvas=document.getElementById("canvas");
       var spirit,startX,startY;
    // touch start listener

        function touchStart(event) {
                 event.preventDefault();
                 if (spirit ||! event.touches.length) return;
                 var touch = event.touches[0];
                 startX = touch.pageX;
                 startY = touch.pageY;
                 spirit = document.createElement("div");
                 spirit.className = "spirit";
                 spirit.style.left = startX+"px";
                 spirit.style.top = startY+"px";
                 canvas.appendChild(spirit);
                 console.log(startX);
        }

        // add touch start listener
        canvas.addEventListener("touchstart",touchStart,false);

         function touchMove(event) {
                event.preventDefault();
                if (!spirit || !event.touches.length) return;
                var touch = event.touches[0];
                var x = touch.pageX-startX;
                var y = touch.pageY-startY;
                spirit.style.webkitTransform = ‘translate(‘+x+ ‘px, ‘+y+‘px)‘;
            console.log(2);
        }

        canvas.addEventListener("touchmove", touchMove, false);
        function touchEnd(event){
            if(!spirit)return;
            canvas.removeChild(spirit);
            spirit=null
        }
        canvas.addEventListener("touchend",touchEnd,false);
    </script>
</body>
</html>

运行时,触摸处会出现一个红色正方形,跟随鼠标滑动

知识点:

处理Touch事件能让你跟踪用户的每一根手指的位置。你可以绑定以下四种Touch事件:

touchstart:  // 手指放到屏幕上的时候触发
touchmove:  // 手指在屏幕上移动的时候触发
touchend:  // 手指从屏幕上拿起的时候触发
touchcancel:  // 系统取消touch事件的时候触发。至于系统什么时候会取消,不详。。

在开始描述touch事件之前,需要先描述一下多触式系统中特有的touch对象(android和iOS乃至nokia最新

的meego系统都模拟了类似的对象,这里只针对iOS,因为我只有iPad可用于测试。。)。这个对象封装一次

屏幕触摸,一般来自于手指。它在touch事件触发的时候产生,可以通过touch event handler的event对象取到

(一般是通过event.changedTouches属性)。这个对象包括一些重要的属性:

client / clientY:// 触摸点相对于浏览器窗口viewport的位置
pageX / pageY:// 触摸点相对于页面的位置
screenX /screenY:// 触摸点相对于屏幕的位置
identifier: // touch对象的unique ID

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 20:33:22

js 触摸事件 touch的相关文章

JS—触摸事件、手势事件

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

JS事件监听手机屏幕触摸事件 Touch

JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch事件能跟踪到屏幕滑动的每根手指. 以下是四种touch事件 touchstart:     //手指放到屏幕上时触发 touchmove:      //手指在屏幕上滑动式触发 touchend:    //手指离开屏幕时触发 touchcancel:     //系统取

触摸事件 Touch MotionEvent ACTION

MotionEvent简介 当用户触摸屏幕时,将创建一个MontionEvent对象,MotionEvent包含了关于发生触摸的位置.时间信息,以及触摸事件的其他细节. 获取MontionEvent对象的方法有: 在View或Activity的onTouchEvent方法中: public boolean onTouchEvent(MotionEvent event) {} 实现OnTouchListener接口后在onTouch方法中: public boolean onTouch(View 

js触摸事件详细解读

本文来自火狐浏览器官方文档 https://developer.mozilla.org/zh-CN/docs/Web/API/Touch_events 触摸事件(touch event)可响应用户手指(或触控笔)对屏幕或者触控板操作,给基于触控的用户界面提供了可靠支持. 触摸事件接口是较为底层的 API,可为特定程序提供多点触控交互(比如双指手势)的支持.多点触控交互开始于一个手指(或触控笔)开始接触设备平面的时刻.随后其他手指也可触摸设备表面,并随意进行划动.当所有手指离开设备平面时,交互结束

移动端JS 触摸事件基础

一.手机上的触摸事件 基本事件: touchstart   //手指刚接触屏幕时触发 touchmove    //手指在屏幕上移动时触发 touchend     //手指从屏幕上移开时触发 下面这个比较少用: touchcancel  //触摸过程被系统取消时触发 每个事件都有以下列表,比如touchend的targetTouches当然是 0 咯: touches         //位于屏幕上的所有手指的列表 targetTouches   //位于该元素上的所有手指的列表 change

移动端js触摸事件大全

一.手机上的触摸事件 基本事件: touchstart   //手指刚接触屏幕时触发 touchmove    //手指在屏幕上移动时触发 touchend     //手指从屏幕上移开时触发 下面这个比较少用: touchcancel  //触摸过程被系统取消时触发 每个事件都有以下列表,比如touchend的targetTouches当然是 0 咯: touches         //位于屏幕上的所有手指的列表 targetTouches   //位于该元素上的所有手指的列表 change

[转]starling教程-触摸事件(Touch Events)(四)

在前面提到过,Starling是Sparrow的姊妹篇,正因为这样,Starling里的touch事件的机制其实是为移动设备的触摸交互设计的,所以当你使用它进行使用鼠标交互的桌面应用开发时,第一眼会感觉有些困惑. 首先,如果你看一下starling的类结构图的话,你会发现starling和本地显示列表结构不同的地方在于它没有InteractiveObject类(InteractiveObject 类是用户可以使用鼠标和键盘与之交互的所有显示对象的抽象基类),所有的显示对象使用默认的交互,换句话说

HTML5触摸事件(touchstart、touchmove和touchend) (转)

HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主要是触摸事件:touchstart.touchmove和touchend. 一开始触摸事件touchstart.touchmove和touchend是iOS版Safari浏览器为了向开发人员传达一些信息新添加的事件.因为iOs设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时

H5实战与剖析之触摸事件(touchstart、touchmove和touchend)

HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主要是触摸事件:touchstart.touchmove和touchend. 一开始触摸事件touchstart.touchmove和touchend是iOs版Safari浏览器为了向开发人员传达一些信息新添加的事件.因为iOs设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时