Javascript 高级手势使用介绍分享!

  在IE10中新加入的对高级用户输入的识别支持,举例说明:注册一个点击操作,通过一句addEventListener 就能够知道当前用户的点击是哪种设备,是手指的点击,是鼠标的单击还是触控笔的点击(平板设备都会带有触控笔)。

 <canvas id="MyCanvas"></canvas>
    <script>
        MyCanvas.addEventListener(
"MSPointerDown", MyBack, false);
        
function MyBack(e) {
            alert(e.pointerType.toString());
        }
    
</script>

 以上这段代码就是能够识别出当前用户的点击是哪种设备,通过回调的方法中 e.pointerType 还进行判断。鼠标是4,触控笔是3,手指是2。至于值为1是何种设备还有待研究。

还有需要注意的就是 想在javascript中添加对输入设备的识别,注册的方法事件也是有点点区别。

addEventListener 添加的事件为 MSPointerDown

而在IE10中对于这样的多种设备识别中优先处理的手指的点击,前提是不影响功能正常单击的情况下。然而IE10不仅仅能识别用户的输入设备还支持非常多的高级手势

以下为IE10高级手势支持的演示

Javascript 高级手势使用介绍

 

创建手势对象

在您的网站中处理手势的第一步是实例化手势对象。

var myGesture = new MSGesture();

接下来,为该手势提供一个目标元素。浏览器将对该元素触发手势事件。同时,该元素还可以确定事件的坐标空间。

elm = document.getElementById("someElement");

myGesture.target = elm;

elm.addEventListener("MSGestureChange", handleGesture);

最后,告知手势对象在手势识别期间处理哪些指针。

elm.addEventListener("MSPointerDown", function (evt) {

// adds the current mouse, pen, or touch contact for gesture recognition

myGesture.addPointer(evt.pointerId);

});

注意:请不要忘记您需要使用 –ms-touch-action 来配置元素以防止其执行默认触摸操作(例如,平移和缩放),并为输入提供指针事件。

处理手势事件

一旦手势对象具有有效目标并至少添加了一个指针,则其将开始触发手势事件。手势事件可分为两种:静态手势(例如,点击或保持)和动态手势(例如,收缩、旋转和轻扫)。

点击

最基本的手势识别是点击。当检测到点击时,将会在手势对象的目标元素触发 MSGestureTap 事件。不同于单击事件,点击手势只能在用户触摸、按鼠标按钮或使用手写笔触控而不移动时触发。如果您要区分用户点击元素和拖动元素的操作,这一点通常会显得十分有用。

长按

长按手势是指用户使用一个手指触摸屏幕,并保持片刻并抬起而不移动的操作。在长按交互期间,MSGestureHold 事件会针对手势的各种状态而多次触发:

复制代码代码如下:
element.addEventListener(“MSGestureHold”, handleHold);
function handleHold(evt) {
if (evt.detail & evt.MSGESTURE_FLAG_BEGIN) {
// Begin signals the start of a gesture. For the Hold gesture, this means the user has been holding long enough in place that the gesture will become a complete press & hold if the finger is lifted.
}
if (evt.detail & evt.MSGESTURE_FLAG_END) {
// End signals the end of the gesture.
}
if (evt.detail & evt.MSGESTURE_FLAG_CANCEL) {
// Cancel signals the user started the gesture but cancelled it. For hold, this occurs when the user drags away before lifting. This flag is sent together with the End flag, signaling the gesture recognition is complete.
}
}

动态手势(收缩、旋转、轻扫和拖动)

动态手势(例如,收缩或旋转)将以转换的形式报告,这与 CSS 2D 转换颇为类似。动态手势可触发三种事件:MSGestureStartMSGestureChange(随着手势的持续而重复触发)和 MSGestureEnd。每个事件都包含缩放(收缩)、旋转、转换和速度等相关信息。

  • 共2页:
  • 上一页
  • 1
  • 2
  • 下一页
  • Javascript 高级手势使用介绍

    上一篇:html5 拖拽上传图片实例演示

    栏    目:HTML5

    下一篇:程序设计HTML5 Canvas API

    本文标题:Javascript 高级手势使用介绍

    本文地址:www.dtcnnet.com/HTML5/30011.html

    分享到:

    更多HTML5

    您可能感兴趣的文章

    • 09-16HTML5中实现拖放效果无须借助javascript
    • 09-15使用html5+css3来实现slider切换效果告别javascript+css
    • 09-14突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
    • 09-14突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
    • 09-14突袭HTML5之Javascript API扩展3—本地存储全新体验
    • 09-14突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
    • 09-13突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌
    • 09-12基于HTML5 FileSystem API的使用介绍
    • 09-12html5 CSS过度-webkit-transition使用介绍
    • 09-11HTML5 的新的表单元素(datalist/keygen/output)使用介绍

    Javascript 高级手势使用介绍
    Javascript 高级手势使用介绍

    阅读排行

    • 1Oracle 9i轻松取得建表和索引的DDL语句
    • 2C语言实现简单的通讯录
    • 3HTML5的文档结构和新增标签完全解析
    • 4Linux环境使用g++编译C++方法总结
    • 5Linux下mysql5.6.24(二进制)自动安装脚
    • 6php简单计算权重的方法示例【适合抽
    • 7PS怎么设计一款立体的纸质包装袋?
    • 8C#异常处理总结及简单实例
    • 9JavaScript计算出两个数的差值
    • 10ASP中FSO的神奇功能 – FSO不能做到的

    推荐教程

    • 09-26Linux基础之终端、控制台、tty、pty简介
    • 09-26《解剖PetShop》之三:PetShop数据访问层
    • 09-26软文推广陷阱有哪些?你中招了吗
    • 09-26MySQL服务器线程数的查看方法详解
    • 09-25sql server 还原数据库时提示数据库正在
    • 09-25快速建立个人网站知识 域名+网络空间
    • 09-25SpringAOP切点函数实现原理详解
    • 09-25C++设计模式之策略模式(Strategy)
    • 09-25Webpack中SplitChunksPlugin 配置参数详解
    • 09-25sql存储过程的使用和介绍

    本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

    ctvol管理联系方式QQ:251552304

    本文章地址:https://www.ctvol.com/htm5ctutorials/472988.html

    (0)
    上一篇 2020年10月26日
    下一篇 2020年10月26日

    精彩推荐