您现在的位置是:网站首页> 编程资料编程资料
Javascript 高级手势使用介绍html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
2021-09-01
1518人已围观
简介 在IE10中新加入的对高级用户输入的识别支持,举例说明:注册一个点击操作,通过一句addEventListener 就能够知道当前用户的点击是哪种设备,是手指的点击,是鼠标的单击还是触控笔的点击(平板设备都会带有触控笔)
在IE10中新加入的对高级用户输入的识别支持,举例说明:注册一个点击操作,通过一句addEventListener 就能够知道当前用户的点击是哪种设备,是手指的点击,是鼠标的单击还是触控笔的点击(平板设备都会带有触控笔)。
<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高级手势支持的演示

创建手势对象
在您的网站中处理手势的第一步是实例化手势对象。
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 转换颇为类似。动态手势可触发三种事件:MSGestureStart、MSGestureChange(随着手势的持续而重复触发)和 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 修饰键来实现。
相关内容
- 基于Modernizr 让网站进行优雅降级的分析html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 用HTML5实现网站在windows8中贴靠的方法html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html5+css3实现一款注册表单实例基于HTML5+CSS3实现的会员登录/注册表单切换特效源码css3实现简单游戏登录注册表单页面特效源码CSS3登录注册表单滑动切换特效源码jQuery+CSS3实现简洁登录注册表单动画切换特效源码jQuery+CSS3节点接触形式带有UI设计体感的注册表单html5+css3+jQuery实现现代感的时尚web注册表单效果纯CSS实现交互式注册表单代码
- 程序设计HTML5 Canvas API 突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述html5中几个不容错过的api或者tips小结HTML5中5个简单实用的APIHTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电5 个强大的HTML5 API 函数推荐
- html5与css3小应用html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- 如何让IE9以下版本(ie6/7/8)认识html5元素HTML5之HTML元素扩展(上)—新增加的元素及使用概述让IE6支持HTML5元素的方法检测浏览器是否支持html5视频的代码几个解决兼容IE6\7\8不支持html5标签的几个方法html5 canvas-1.canvas介绍(hello canvas)html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式input file上传文件样式支持html5的浏览器解决方案让IE支持HTML5的方法IE支持HTML5的解决方法
- html5 拖拽上传图片实例演示html5拖拽排序多图片上传插件特效源码HTML5 拖拽批量上传文件的示例代码html5实现多图片预览上传及点击可拖拽控件html5使用Drag事件编辑器拖拽上传图片的示例代码HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)HTML5 canvas实现移动端上传头像拖拽裁剪效果结合html5+nodejs+express实现拖拽上传的功能HTML5拖拽文件到浏览器并实现文件上传下载功能代码HTML5拖拽文件上传的示例代码
- html5 跨文档消息传输示例探讨HTML5的文档结构和新增标签完全解析HTML5文档结构标签如何在Dreamweaver cs6 中设置默认文档格式为html5HTML5之SVG 2D入门8—文档结构及相关元素总结HTML5 与 XHTML2详解HTML编程的标记与文档结构在HTML文档中嵌入CSS的三种常用方式html文档中的 ol 元素的序号数字极限探讨HTML文档类型详解 推荐CSS入门:XHTML文档结构树
- Html5实现如何在两个div元素之间拖放图像HTML5中的拖放实现详解HTML5拖放功能_动力节点Java学院整理 HTML5拖放API实现拖放排序的实例代码HTML5拖放效果的实现代码详解HTML5中的拖放事件(Drag 和 drop)HTML5 拖放功能实现代码 HTML5+CSS3实现拖放(Drag and Drop)示例HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法html5拖曳操作 HTML5实现网页元素的拖放操作HTML5中实现拖放效果无须借助javascript
- 检测浏览器是否支持html5视频的代码HTML5中视频音频的使用详解HTML5+CSS3模仿优酷视频截图功能示例canvas与html5实现视频截图功能示例html5 视频播放解决方案HTML5页面音视频在微信和app下自动播放的实现方法浅谈Html5中视频 音频标签 进度条的问题使用HTML5在网页中嵌入音频和视频播放的基本方法浅谈基于HTML5的在线视频播放方案HTML5中的音频和视频媒体播放元素小结用HTML5制作视频拼图的教程
