如果你在开发PAD/手机所用WEB版应用,需要在桌面审查页面元素、调试脚本,模拟移动设备尺寸、事件、位置等信息,

那么可以使用Chrome开发者工具(DevTools)提供的强大的移动仿真功能,支持主流移动触摸设备,并且支持对Android的远程调试。

本文是对Google官方文档Mobile Emulate章节的翻译,原文链接如下:

https://developers.google.com/chrome-developer-tools/docs/mobile-emulation?hl=zh-CN

移动仿真

内容

  • 仿真触摸事件
  • 仿真设备视角(尺寸/规格/版本)
  • User Agent模仿
  • 网络带宽流量控制
  • 地理定位覆盖
  • 设备方向覆盖
  • CSS媒体类型仿真
  • FAQ
仿真触摸事件

由于大部分桌面机器都不支持触摸事件,所以对触摸(Touch)事件进行测试比较难。如果需要在移动设备上进行测试将拖长你的开发周期,因为每个变更都得部署到服务器上然后用设备访问,而且设备上还无法利用调试工具。

解决方案是在你的桌面机器上模拟触摸事件。对于单点触摸事件,Chrome开发者工具支持单点触摸事件(singletouch
event
)模拟,这样在桌面上调试移动网页应用会更加容易。

为了启用触摸事件模拟(touch event emulation),需要做如下设置:

  1. 点击开发者工具右下角Settings图标,并点开Overrides设置面板(更新20140917:如果没有这个设置面板,请查找是否有Emulation标签页)
  2. 向下滚动并勾选"Enable touch events"单选框
  3. 重新加载页面

现在你的鼠标会变成一个小圆状,并且在页面右上角会提示Overrides:Touch字样,这样你的鼠标操作就可以模拟相关的触摸事件:touchstarttouchmovetouchend.

注意:

  • 功能探测比如Modernizr.touch现在可以在页面刷新时获得;
  • 和其他很多覆盖(overrides)功能一样,这个功能也仅在开发者工具打开的情况下工作;
  • 鼠标会变成一个小圆状,用来模拟手指触摸点大小;
  • 启用"Emulate touch events"并不会完全禁用鼠标事件,就如同在触摸屏上一样;
  • 在鼠标点击时,触发事件的次序目前是:touchstart
    > mousedown > touchmove > touchend > mouseup >
    click
    . 而在触摸设备上,这个顺序有点不一样。这是个问题,开发者工具将会很快更新为使用正确的顺序;

  • elem.ontouch*
    事件目前不能被Enable
    touch
    events设置触发,但可以使用命令行标志来触发这些事件处理器,以Windows为例,桌面Chrome图标右键菜单的属性-〉运行中,添加 --touch-events
    命令行运行参数,重启Chrome。

调试触摸事件

  1. 打开Canvas
    Fingerpaint Demo
  2. 打开源码(Sources)面板
  3. 展开"Event Listener Breakpoints"子面板
  4. 在"Touch"勾选"touchstart"
    和 "touchmove" 事件
  5. 把鼠标移动到画图区域
  6. 调试器会中断在draw()方法上
 
多点触摸(Multi-touch)

如果你有一个支持触摸输入的设备,那么还可以模拟多点触摸事件,比如最新的苹果MacBook。更多辅助信息可以阅读文章Multi-touch
web development guide on HTML5
Rocks
的"Developer
tools"章节。

Pictures hosted
in techbrood

转载:http://blog.csdn.net/iefreer/article/details/12653193

Google Chrome开发者工具-移动仿真:触摸事件仿真的更多相关文章

  1. Google Chrome开发者工具

    Google Chrome开发者工具 是内嵌到浏览器的开发工具,打开方式有两种:第一“按F12”,第二:shift+ctrl+i(火狐.360等浏览器也可以这么用) Console介绍 Console ...

  2. Chrome开发者工具详解(3)-Timeline面板

    Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...

  3. Chrome开发者工具不完全指南:(三、性能篇)

    卤煮在前面已经向大家介绍了Chrome开发者工具的一些功能面板,其中包括Elements.Network.Resources基础功能部分和Sources进阶功能部分,对于一般的网站项目来说,其实就是需 ...

  4. Chrome开发者工具详解(2)-Network面板

    Chrome开发者工具详解(2)-Network面板 注: 这一篇主要讲解面板Network,参考了Google的相关文档,主要用于公司内部技术分享. Chrome开发者工具面板 面板上包含了Elem ...

  5. Chrome开发者工具详解(1)-Elements、Console、Sources面板

    Chrome开发者工具详解(1)-Elements.Console.Sources面板 Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Netwo ...

  6. Chrome开发者工具详解(1)

    Chrome开发者工具面板 面板上包含了Elements.Console.Sources.Network.Timeline.Profiles.Application.Security.Audits这些 ...

  7. 前端调试效率低?试试这10个“Chrome开发者工具”使用技巧

    摘要:今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试,优化页面渲染速度等.希望能提升Web开发人员的工作效率. 今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试, ...

  8. Chrome开发者工具详解(2)

    Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板.Timeline面板.Profiles面板.Application面板.Sec ...

  9. 神器——Chrome开发者工具(一)

    这里我假设你用的是Chrome浏览器,如果恰好你做web开发,或者是比较好奇网页中的一些渲染效果并且喜欢折腾,那么你一定知道Chrome的开发者工具了.其实其他浏览器也有类似工具,比如Firefox下 ...

随机推荐

  1. zabbix中监控项报错

    报错信息: zabbix报错(Not all processes could be identified, non-owned process info will not be shown, you ...

  2. Win 10 Google 云端硬盘 网页证书问题导致无法登录解决办法

    操作方法 按照图示,将以下3项勾去并确定. 效果 设置以后,可成功访问:

  3. linux 命令——51 lsof(转)

    lsof(list open files) 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以 如传输控制 ...

  4. 在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务

    我的前一篇文章 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数介绍了在SAP云平台的Neo环境下如何通过SAP Cloud Conne ...

  5. StackOverflow之旅<2>------{HashMap和Hashtable的区别}

    问题 在Java中HashMap和Hashtable的区别? 哪一个对于多线程应用程序更好? 回答 Hashtable是同步的,加了synchronized锁,而HashMap不是.没有加synchr ...

  6. hdu-1757 A Simple Math Problem---矩阵快速幂模板题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1757 题目大意: 求递推式第k项模m If x < 10 f(x) = x.If x > ...

  7. bzoj4622 [NOI 2003] 智破连环阵

    Description B国在耗资百亿元之后终于研究出了新式武器——连环阵(Zenith Protected Linked Hybrid Zone).传说中,连环阵是一种永不停滞的自发性智能武器.但经 ...

  8. python_48_Python3中字符编码与转码

    python3默认是Unicode,不用声明# -*- coding:utf-8 -*-,如果声明则是utf-8 unicode='你好' print('utf-8:',unicode.encode( ...

  9. CSVDE

    csvde -f C:\export_OrganizationalUnit.csv -r '(objectClass=organizationalUnit)' -l 'displayName,prox ...

  10. MySQL 5.6常用参数配置及说明

    [client] user = root password = Yong_110 [mysql] prompt = [\\u@\\p][\\d]>\\_ no-auto-rehash [mysq ...