来源:自学PHP网 时间:2015-01-26 11:14 作者: 阅读:次
[导读] 在IE10中新加入的对高级用户输入的识别支持,举例说明:注册一个点击操作,通过一句addEventListener 就能够知道当前用户的点击是哪种设备,是手指的点击,是鼠标的单击还是触控笔的...
在IE10中新加入的对高级用户输入的识别支持,举例说明:注册一个点击操作,通过一句addEventListener 就能够知道当前用户的点击是哪种设备,是手指的点击,是鼠标的单击还是触控笔的点击(平板设备都会带有触控笔)
在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高级手势支持的演示
创建手势对象 在您的网站中处理手势的第一步是实例化手势对象。
接下来,为该手势提供一个目标元素。浏览器将对该元素触发手势事件。同时,该元素还可以确定事件的坐标空间。
最后,告知手势对象在手势识别期间处理哪些指针。
注意:请不要忘记您需要使用 一旦手势对象具有有效目标并至少添加了一个指针,则其将开始触发手势事件。手势事件可分为两种:静态手势(例如,点击或保持)和动态手势(例如,收缩、旋转和轻扫)。 点击最基本的手势识别是点击。当检测到点击时,将会在手势对象的目标元素触发 长按手势是指用户使用一个手指触摸屏幕,并保持片刻并抬起而不移动的操作。在长按交互期间, 复制代码 代码如下: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 转换颇为类似。动态手势可触发三种事件: 由于动态手势以转换的形式报告,因此使用包含 CSS 2D 转换的 复制代码 代码如下: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 修饰键来实现。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com