移动端:移动端事件

移动端事件


一、  PC端事件

  1. 鼠标类
    • click、mouseover、mouseout、mouseleave、mouseenter、mouseup、mousedown、mousewheel...
  2. 键盘类
    • keydown、keyup...
  3. 其他类
    • load、blur、focus、change....

二、 移动端事件

  1. 点击事件
  2. 双击事件
  3. 滑动事件
    • 上滑、下滑、左滑、右滑
  4. 长按事件
  5. 摇一摇、重力感应等

三、 touch事件模型

  1. touchstart          手指刚接触屏幕时触发
  2. touchmove        手指在屏幕上移动时触发
  3. touchend           手指从屏幕上移开时触发
  4. touchcancel       一些更高级别的事件发生时(如电话接入或者弹出信息)会取消当前的touch操作,即触发touchcancel。一般会在touchcancel时暂停游戏、存档等操作

*  在Chrome移动模拟器中模拟,发现鼠标触摸span元素没有任何效果  解决方法:addEventListener

四、addEventListener

  1. 是一个侦听事件并处理相应的函数
  2. 一般有三个参数,第一个是事件的类型,第二个是侦听到事件后处理事件的函数,第三个参数是事件捕获(值就只有两个,true或false)

五、跟踪触摸的属性

  1. touches:表示当前跟踪的触摸操作的touch对象的数组
    • 当一个手指在触屏上时,event.touches.length=1
    • 当两个手指在触屏上时,event.touches.length=2,以此类推
  2. changedTouches:导致触摸事件被触发的触摸点数组
  3. targetTouches:特定于事件目标的touch对象数组

六、 触摸事件坐标

  1. clientX         触摸目标在视口中的x坐标
  2. clientY         触摸目标在视口中的y坐标
  3. identifier     标识触摸的唯一ID
  4. pageX         触摸目标在页面中的x坐标
  5. pageY         触摸目标在页面中的y坐标
  6. screenX       触摸目标在屏幕中的x坐标
  7. screenY       触摸目标在屏幕中的y坐标
  8. target          触摸的DOM节点目标
1 /* 触摸事件坐标的使用方法 */
2 function handleTouch(e){
3 //  如果需要,用pageX或pageY代替clientX或clientY
4   var touch = e.changedTouches[0];
5   var coorX = touch.clientX;
6   var coorY = touch.clientY;
7 }
8 * clientX/Y和pageX/Y的区别在于前者相对于视觉视口的左上角,后者相对布局视口的左上角。布局视口 是可以滚动的

七、 移动端事件封装

 1 /* 单击事件 */
 2 element.addEventListener(‘touchstart‘, function(e) {
 3             var touches = e.touches[0];
 4             startTx = touches.clientX;
 5             startTy = touches.clientY;
 6         }, false);
 7 * 案例中通过调用tap(封装的单击事件),可以很大程度上简化代码量,方便我们开发
 8 /* 长按事件 */
 9 var touches = e.touches[0];
10             // 长按 750ms 才去执行 fn函数
11             lTapTimer = setTimeout(function() {  fn();  }, 750);
12             e.preventDefault();
13 * 在touchmove中需要判断水平或者垂直方向的坐标距离,如果大于某个值,我们就不再认为是长按操作了

八、FastClick库

  1. 定义
    • 一个简单易用的库,用于消除click移动浏览器上物理点击和事件触发之间的300毫秒延迟
  2. 网址
    • https://github.com/ftlabs/fastclick
    • 截至2015年底,大多数移动浏览器(特别是Chrome和Safari)不再具有300ms的触摸延迟,因此fastclick对新型浏览器没有任何好处,并且可能会在应用程序中引入错误。仔细考虑你是否真的需要使用它
  3. 使用方法
    • 引入插件的javascript文件到你的HTML网页中
    • <script type=‘application/javascript‘ src=‘/path/to/fastclick.js‘></script>
    • 注意:
      • type属性在HTML5网页中可以省略不写
      • 脚本必须加载到实例化fastclick在页面的任何元素之前
      • 实例化 fastclick 最好在body元素的前面
1 /*  实例化 */
2 if (‘addEventListener‘ in document) {
3     document.addEventListener(‘DOMContentLoaded‘, function() {
4         FastClick.attach(document.body);
5     }, false);
6 }
7 * 引入库和实例化推荐写到body元素的前面

九、 移动端事件库

  1. touch.js
    • 百度touch.js 是Web移动端touch点击事件不错的解决方案
  2. 网站
  3. 支持移动端事件
  4. hammer.js
    • 一款开源的移动端脚本框架,他能完美的实现在移端开发的大多数事件,如点击、滑动、拖动、多点触控等事件
    • 网站   http://hammerjs.github.io/getting-started/
    • 需要new

原文地址:https://www.cnblogs.com/guisenbin/p/10454412.html

时间: 2024-10-06 19:22:35

移动端:移动端事件的相关文章

web移动端触摸滑动事件

web移动端触摸事件的范例~~~ 注意:1.如果不是内联元素,获取style的属性值前需先赋值~不然为Null. 2.亲测andriod 手机 MX4内置浏览器运行妥妥的~~但是微信浏览器并不支持~原因未找到. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">

不能遗忘移动端的手势事件

一直游离在pc端开发网站,当然也偶偶将网站制作成响应式的. 但是都没有研究过移动端的手势,上次在ctrip面试的一道题目如今还深深的刻在我的脑海中: 手机上的滑动事件该怎么处理,比如常见的app向右滑动出现菜单? 今天将hammer.js研究了一下,她主要是处理移动端的手势事件的,正如她的ad:Add touch gestures to your page. 我的思路: 1.当手指往右滑动时left块向右移动 2.当手指在红色的left向左滑动时left隐藏 代码如下: <!DOCTYPE ht

关于移动端的Click事件

在移动端执行Click事件,通常情况出现有300毫秒的延迟,为防止这种不必要的延迟效果,我们可以换种方式来实现,同样达到快速执行Click事件的效果. 先了解一下移动端Click的执行顺序: touchstart - > touchmove -> touchend -> mouseover ->mousemove ->click, 从这个执行顺序可以看出,走完这个过程,300毫秒到click响应不足为奇了. 既然如此,我们完全可以通过touchstart来取代click事件,

学习记录 -- 移动端的触摸事件

移动端的触摸事件分为三个 1.touchstart 手指刚放上添加事件的元素时触发 2.touchmove   手指在添加事件的元素上移动时触发 3.touchend 手指在添加事件的元素上离开时触发 每个事件都包含三个事件属性 a.touches 正在触摸屏幕的所有手指的一个列表 b.targetTouches  正在触摸当前DOM元素上的手指上的一个列表 c.changedTouches    涉及当前事件的手指的一个列表 原文地址:https://www.cnblogs.com/hros/

利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问题进行"贯穿"的诊断,才能算是"端到端"的诊断. 能够进行这种类型的诊断的工具很多,我们后面会分别介绍,今天只是给大家看看利用Oracle的工具软件进行从最前端到最后端的应用性能诊断的例子. 涉及的Oracle软件产品有以下几个: RUEI(真是的客户体验洞察) EM1

端到端协议

端到端协议 第五章 从前几章研究的主机到主机的分组传递服务到转向进程到进程之间的通信信道,这正是网络体系结构中传输层(transport)的任务,由于它支持端点应用程序之间的通信,因此传输层协议有时也被称为端到端(end to end)协议. 因特网提供尽力而为(best-effort)的服务,为满足应用程序所需的高级服务,不同传输层协议用于不同的算法组合.代表性的4种有:一个简单的异步多路分解服务,一个可靠的字节流服务,一个请求/应答服务和一个用于实时应用的服务. 5.1 简单的多路分解协议

Kafka端到端审计

概述 Kafka端到端审计是指生产者生产的消息存入至broker,以及消费者从broker中消费消息这个过程之间消息个数及延迟的审计,以此可以检测是否有数据丢失,是否有数据重复以及端到端的延迟等. 目前主要调研了3个产品: Chaperone (Uber) Confluent Control Center(非开源,收费) Kafka Monitor (LinkedIn) 对于Kafka端到端的审计主要通过: 消息payload中内嵌时间戳timestamp 消息payload中内嵌全局index

端到端流程解决方案

一.需求分析 1企业规模的不断发展.管理水平的不断提升,通常伴随着企业各业务板块管理分工更细.更专业,IT系统同样越来越多.越来越专 业化.不可避免的,部门墙和信息孤岛出现了,企业的流程被部门或者IT系统割裂. 2通常,企业端到端流程的实现从核心的业务流程开始,比如:制造行业的产品研发流程.订单管理流程, 地产行业的采购招标流程.合同管理流程,地产经纪的房产交易流程等等,通过核心业务流程的端到端管理,提升核心业务的管理水平,提 升核心竞争力. 3打破组织与IT系统边界,把流程从职能组织的背后移到

[Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能

一.引言 在前一篇文章已经详细介绍了SignalR了,并且简单介绍它在Asp.net MVC 和WPF中的应用.在上篇博文介绍的都是群发消息的实现,然而,对于SignalR是为了实时聊天而生的,自然少了不像QQ一样的端对端的聊天了.本篇博文将介绍如何使用SignalR来实现类似QQ聊天的功能. 二.使用SignalR实现端对端聊天的思路 在介绍具体实现之前,我先来介绍了使用SignalR实现端对端聊天的思路.相信大家在前篇文章已经看到过Clients.All.sendMessage(name,

基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区