返回顶部
首页 > 资讯 > 前端开发 > node.js >Javascript 高级手势使用的介绍是怎样的
  • 939
分享到

Javascript 高级手势使用的介绍是怎样的

2024-04-02 19:04:59 939人浏览 八月长安
摘要

这期内容当中小编将会给大家带来有关javascript 高级手势使用的介绍是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在IE10中新加入的对高级用

这期内容当中小编将会给大家带来有关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);

});

注意:请不要忘记您需要使用 &ndash;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。每个事件都包含缩放(收缩)、旋转、转换和速度等相关信息。

由于动态手势以转换的形式报告,因此使用包含 CSS 2D 转换的 MSGesture 来操作诸如照片或拼图等元素将变得十分轻松。例如,您可以通过下列方式启用缩放、旋转和拖动元素的操作:

代码如下:


targetElement.addEventListener("MSGestureChange", manipulateElement);
function manipulateElement(e) {
// Uncomment the following code if you want to disable the built-in inertia provided by dynamic gesture recognition
// if (e.detail == e.MSGESTURE_FLAG_INERTIA)
// return;
var m = new MSCSSMatrix(e.target.style.transfORM); // Get the latest CSS transform on the element
e.target.style.transform = m
.translate(e.offsetX, e.offsetY) // Move the transform origin under the center of the gesture
.rotate(e.rotation * 180 / Math.PI) // Apply Rotation
.scale(e.scale) // Apply Scale
.translate(e.translationX, e.translationY) // Apply Translation
.translate(-e.offsetX, -e.offsetY); // Move the transform origin back
}



缩放和旋转等动态手势可支持鼠标操作,具体可通过在旋转鼠标滚轮的同时分别使用 CTRL 或 SHIFT 修饰键来实现。

上述就是小编为大家分享的Javascript 高级手势使用的介绍是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网node.js频道。

--结束END--

本文标题: Javascript 高级手势使用的介绍是怎样的

本文链接: https://lsjlt.com/news/82831.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Javascript 高级手势使用的介绍是怎样的
    这期内容当中小编将会给大家带来有关Javascript 高级手势使用的介绍是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  在IE10中新加入的对高级用...
    99+
    2024-04-02
  • Javascript的高级手势如何使用
    这篇文章主要介绍“Javascript的高级手势如何使用”,在日常操作中,相信很多人在Javascript的高级手势如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • Javascript高级手势如何使用
    本文小编为大家详细介绍“Javascript高级手势如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Javascript高级手势如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • JavaScript语法介绍是怎样的
    本篇文章给大家分享的是有关JavaScript语法介绍是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript 是一个 脚本...
    99+
    2024-04-02
  • vertical-align使用介绍是怎样的
    vertical-align使用介绍是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 前言 最近学习CS...
    99+
    2024-04-02
  • JavaScript内存管理介绍是怎样的
    本篇文章为大家展示了JavaScript内存管理介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。大多数时候,我们在不了解有关内存管理的知识下也只开发,因为...
    99+
    2024-04-02
  • JavaScript中null的介绍以及用法是怎样的
    本篇文章给大家分享的是有关JavaScript中null的介绍以及用法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScrip...
    99+
    2024-04-02
  • 关于JavaScript 的对象的介绍是怎样的
    本篇文章为大家展示了关于JavaScript 的对象的介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 对象方法 & this方法只是保存函数...
    99+
    2024-04-02
  • Monyog的介绍是怎样的
    本篇文章为大家展示了Monyog的介绍是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、工具强大可以直接定位sql语句在做什么事情;Mysql日志MONyo...
    99+
    2024-04-02
  • JavaScript中的Map、WeakMap、Set和WeakSet介绍是怎样的
    今天就跟大家聊聊有关JavaScript中的Map、WeakMap、Set和WeakSet介绍是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。...
    99+
    2024-04-02
  • MySQL explain的介绍是怎样的
    这期内容当中小编将会给大家带来有关MySQL explain的介绍是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。MySQL explain 详解通过 explai...
    99+
    2024-04-02
  • HTML5中对body是怎样介绍的
    HTML5中对body是怎样介绍的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 body元素就是就是html文...
    99+
    2024-04-02
  • CSS注释的一些高级用法介绍
    本篇内容介绍了“CSS注释的一些高级用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准修饰选择器(Q...
    99+
    2024-04-02
  • HTML5 SVG中的图形绘制介绍及使用是怎样的
    本篇文章给大家分享的是有关HTML5 SVG中的图形绘制介绍及使用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。基本形状SVG提供了很...
    99+
    2024-04-02
  • mongodb的介绍以及安装用法是怎样的
    本篇文章为大家展示了mongodb的介绍以及安装方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、mongodb的介绍1.什么是MongoDBMongoDB是由...
    99+
    2024-04-02
  • HTML5语法变化的介绍是怎样的
    今天就跟大家聊聊有关HTML5语法变化的介绍是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 1、标签不再区分大...
    99+
    2024-04-02
  • linux下rsync的基础介绍和高级用法
    这篇文章主要介绍“linux下rsync的基础介绍和高级用法”,在日常操作中,相信很多人在linux下rsync的基础介绍和高级用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下rsync的基础介...
    99+
    2023-06-05
  • Mysql数据类型的介绍和用法是怎样的
    这篇文章给大家介绍Mysql数据类型的介绍和用法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据类型数值型整数int(m) 四个字节(-21亿~21亿) ---java:in...
    99+
    2024-04-02
  • Linux Deepin2014的介绍以及特点是怎样的
    Linux Deepin2014的介绍以及特点是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于深度(Deepin),大家了解的更多应该是早期的深度Windows修...
    99+
    2023-06-13
  • JavaScript API中Service Worke简介是怎样的
    Service Worker JavaScript API简介是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。servi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作