返回顶部
首页 > 资讯 > 精选 >HTML5触摸事件的实现示例
  • 849
分享到

HTML5触摸事件的实现示例

2023-06-09 11:06:06 849人浏览 薄情痞子
摘要

这篇文章主要介绍HTML5触摸事件的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容

这篇文章主要介绍HTML5触摸事件的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

html5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。

一开始触摸事件touchstart、touchmove和touchend是iOS版Safari浏览器为了向开发人员传达一些信息新添加的事件。因为ios设备既没有鼠标也没有键盘,所以在为移动Safari浏览器开发交互性网页的时候,PC端的鼠标和键盘事件是不够用的。

在iPhone 3Gs发布的时候,其自带的移动Safari浏览器就提供了一些与触摸(touch)操作相关的新事件。随后,Android上的浏览器也实现了相同的事件。触摸事件(touch)会在用户手指放在屏幕上面的时候、在屏幕上滑动的时候或者是从屏幕上移开的时候出发。下面具体说明:

  • touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

  • touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

  • touchend事件:当手指从屏幕上离开的时候触发。

  • touchcancel事件:当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。

上面的这些事件都会冒泡,也都可以取消。虽然这些触摸事件没有在DOM规范中定义,但是它们却是以兼容DOM的方式实现的。所以,每个触摸事件的event对象都提供了在鼠标实践中常见的属性:bubbles(起泡事件的类型)、cancelable(是否用 preventDefault() 方法可以取消与事件关联的默认动作)、clientX(返回当事件被触发时,鼠标指针的水平坐标)、clientY(返回当事件触发时,鼠标指针的垂直坐标)、screenX(当某个事件被触发时,鼠标指针的水平坐标)和screenY(返回当某个事件被触发时,鼠标指针的垂直坐标)。除了常见的DOM属性,触摸事件还包含下面三个用于跟踪触摸的属性。

  • touches:表示当前跟踪的触摸操作的touch对象的数组

  • targetTouches:特定于事件目标的Touch对象的数组。

  • changeTouches:表示自上次触摸以来发生了什么改变的Touch对象的数组。

每个Touch对象包含的属性如下。

  • clientX:触摸目标在视口中的x坐标。

  • clientY:触摸目标在视口中的y坐标。

  • identifier:标识触摸的唯一ID。

  • pageX:触摸目标在页面中的x坐标。

  • pageY:触摸目标在页面中的y坐标。

  • screenX:触摸目标在屏幕中的x坐标。

  • screenY:触摸目标在屏幕中的y坐标。

  • target:触目的DOM节点目标。

上面的属性光这么看,果然非常繁琐,每个属性说的都是那么的细致,只有真刀实枪的来点小例子才能更加明白其中的奥妙。所以小例子如下。

function load (){         document.addEventListener('touchstart',touch, false);     document.addEventListener('touchmove',touch, false);     document.addEventListener('touchend',touch, false);             function touch (event){         var event = event || window.event;                     var oInp = document.getElementById("inp");             switch(event.type){             case "touchstart":                 oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                 break;             case "touchend":                 oInp.innerHTML = "<br>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";                 break;             case "touchmove":                 event.preventDefault();                 oInp.innerHTML = "<br>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                 break;         }                 } } window.addEventListener('load',load, false);

对上面的代码稍微做点改动,可以判断水平方向滑动的方向,然后左相应的动作,如下:

function load(){         document.addEventListener('touchstart',touch, false);    document.addEventListener('touchmove',touch, false);    document.addEventListener('touchend',touch, false);         function touch (event){        var event = event || window.event;                     var oInp = document.getElementById("inp");        var distance,clientX_start,clientX_end,            minRange=10;            this.clientX_start;            this.direction;             this.callbackFun=function(){            if(this.direction=='ltr') {                console.log('从左往右');            }            else {                console.log('从右往左');            }            }        switch(event.type){            case "touchstart":                clientX_start=event.touches[0].clientX;                this.clientX_start=clientX_start;                break;            case "touchend":                this.callbackFun();                break;            case "touchmove":                event.preventDefault();                               clientX_end = event.changedTouches[0].clientX;                //判断移动的方向                distance=clientX_end-this.clientX_start;                if(this.clientX_start+minRange<clientX_end) {                    this.direction='ltr';                }                else if(this.clientX_start-minRange>clientX_end){                    this.direction='rtl';                }                break;        }      }}window.addEventListener('load',load, false);

以上是“HTML5触摸事件的实现示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: HTML5触摸事件的实现示例

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

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

猜你喜欢
  • HTML5触摸事件的实现示例
    这篇文章主要介绍HTML5触摸事件的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容...
    99+
    2023-06-09
  • HTML5触摸事件演化tap事件的示例分析
    HTML5触摸事件演化tap事件介绍,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。触摸事件是移动浏览器特有的HTML5事件,虽然click事件...
    99+
    2024-04-02
  • HTML5触摸事件演化tap事件的方法
    本文小编为大家详细介绍“HTML5触摸事件演化tap事件的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5触摸事件演化tap事件的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • jQuery如何实现触摸事件
    这篇文章主要为大家展示了“jQuery如何实现触摸事件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现触摸事件”这篇文章吧。触摸事件//&nb...
    99+
    2024-04-02
  • Android 的触摸事件详解及示例代码
    由于触摸(Touch)而触发的事件 Android的事件:onClick, onScroll,onFling等等,都是由许多个Touch组成的。其中Touch的第一个状态肯定是...
    99+
    2022-06-06
    示例 事件 Android
  • HTML5中常用的触摸事件有哪些
    本篇内容主要讲解“HTML5中常用的触摸事件有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5中常用的触摸事件有哪些”吧!   一开始触摸事件to...
    99+
    2024-04-02
  • JS中触摸与手势事件的示例分析
    这篇文章给大家分享的是有关JS中触摸与手势事件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下1.触摸事件 包含 iOS 2.0 软件的 iPhone 3G ...
    99+
    2024-04-02
  • iOS开发中的touchesBegan触摸事件怎么实现
    在iOS开发中,可以通过重写`touchesBegan`方法来处理触摸事件。`touchesBegan`方法会在用户触摸屏幕时被调用...
    99+
    2023-09-14
    iOS
  • HTML5移动端开发的常用触摸事件有哪些
    HTML5移动端开发的常用触摸事件有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HTML5中新添加了很多事件,但是由于他们的兼容问题不是...
    99+
    2024-04-02
  • 怎么在html5中判断触摸事件的滑动方向
    这期内容当中小编将会给大家带来有关怎么在html5中判断触摸事件的滑动方向,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。TouchEventTouchEvent 是一类描述手指在触摸平面(触摸屏、触摸板等...
    99+
    2023-06-09
  • jquery实现按Enter键触发事件示例
    复制代码 代码如下: $(function () { document.onkeydown = function (event) { var e = event || window....
    99+
    2022-11-15
    Enter键 触发事件
  • Android触摸事件的应用详解
    前言上一篇讲了Android触摸事件的传递机制,具体可以看这里初识Android触摸事件传递机制。既然知道Android中触摸事件的传递分发,那么它能解决什么样的问题,在我们实际开发中如何应用,这点很重要,知道原理是为了解决问题而准备的。这...
    99+
    2023-05-31
    android 触摸事件 触摸
  • Input系统之InputReader处理触摸事件案例
    目录正文1. InputMapper 处理触摸事件2. 收集触摸事件信息3. 处理同步事件3.1 同步数据3.2 处理同步后的数据3.2.1 加工数据3.2.2 分发事件结束正文 ...
    99+
    2023-02-14
    InputReader处理触摸事件 Input系统
  • 如何实现Android触摸事件分发的原理分析
    如何实现Android触摸事件分发的原理分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一:前言最近在学Android的触摸事件分发,我觉得网上说的太杂太乱,而且有很多博客都...
    99+
    2023-06-26
  • Android中的监听触摸事件怎么在Fragment中实现
    本篇文章为大家展示了Android中的监听触摸事件怎么在Fragment中实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。activity的触摸事件 @Override public boolea...
    99+
    2023-05-31
    android fragment roi
  • html5 datalist选中option选项后触发事件的示例分析
    这篇文章将为大家详细讲解有关html5 datalist选中option选项后触发事件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用input + datalist 实现自动补全功能,其中d...
    99+
    2023-06-09
  • Android点击事件之多点触摸与手势识别的实现
    前言 最近遇到想要实现三指滑动监听的需求,实现代码不方便贴出来,但是思路还是可以记录一下。 Muilti-touch 双指缩放探索 首先要实现OnTouchListener接口,...
    99+
    2024-04-02
  • 如何利用原生JS实现触摸滑动监听事件
    前言 今天写一个小Demo,有个地方涉及到了左滑右滑的逻辑,本来想着用插件来着,但是想到自己好久没用原生JS写滑动的监听了,所以试着用原生JS来实现了一下,毕竟温故而知新嘛,同时做...
    99+
    2024-04-02
  • 微信小程序怎样实现拖拽image触摸事件监听
    这篇文章给大家分享的是有关微信小程序怎样实现拖拽image触摸事件监听的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序实现拖拽 image 触摸事件监听的实例需要做个浮在...
    99+
    2024-04-02
  • 利用DrawerLayout和触摸事件分发实现抽屉侧滑效果
    本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下效果展示 还是看代码实在,直接上菜了。 MainActivity的代码:public class MainActivity ext...
    99+
    2023-05-30
    drawerlayout 抽屉侧滑
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作