HTML5触摸界面的程序设计

在移动端屏幕中,我们需要做的不只是和处理PC端网页那样,处理简单的点击事件或者其他桌面事件。我们需要更多的了解一下移动端的触摸事件和手势。——整理自《HTML5触摸界面设计与开发》

基于webkit 引擎的浏览器

webkit 是一个非常强大的引擎,也是第一代iphone获得成功的一个原因。webkit 起源于名为Konqueror的开源浏览器引擎,苹果将它开发为webkit,作为safari背后的浏览器引擎。现在的 ios ,android平台上的浏览器都是基于webkit引擎来实现的

windows版的浏览器

作为windows phone手机的浏览器引擎肯定是IE了,与webkit功能相近,但IE10有着不同的触摸事件API,但是实现的功能都是相同的。现在IE几乎都兼容了当前的

轻触 和 单击 的不同

在pc端机基于鼠标的界面互动是单击,那么在触摸界面上的基本交互方式就是轻触,最初,轻触和单击相仿,但是轻触与单击完全不同。在触屏设备的浏览器中,仍然可以触发鼠标事件。当一个用户轻触一个元素,但不降手指留在屏幕上,轻触300ms之后将触发click事件。同时触发的还有mouseup和mousedown事件,我们不考虑这些桌面事件,我们只说一下触屏事件。

总的来说在移动端有四种类型的触摸事件

  • 触摸开始 (手势放在屏幕上的时候)
  • 接触点移动 (手指在屏幕上移动且手指不离开屏幕)
  • 触摸结束 (用户手指离开屏幕)
  • 触摸被取消 (触摸被中断了,比如突然短息或电话来了)
webkit内的触摸事件
  • touchstart 触摸开始 包含touches数组
  • touchmove 触摸点移动 包含touches数组
  • touchend 触摸结束 包含touches数组
  • touchcancel 触摸取消 不包含touches数组

备注:touches数组是一组触摸事件所产生的触摸对象,代表着触摸屏幕的手指

触摸对象的属性

  • identifier 是这个触摸的唯一表示符,用户的手指保持在屏幕上,这个值不会改变
  • screenX 触摸的X的位置,相对移动设备屏幕左侧,无论是否滚动
  • screenY 触摸Y的位置,相对于屏幕顶部
  • clientX 触摸相对于浏览器窗口左侧的X位置,一般和screenX一样
  • clientY 触摸相对浏览器窗口的顶部位置;相当于screenY减去卷去的上部
  • pageX 触摸相对所呈现的页面左侧的X的位置
  • pageY 触摸相对所呈现顶部的Y的位置
  • target 触摸开始时接触点下的元素对象,如果触摸移动到其他位置,值不变,还是原来的
  • radius[X/Y] 接触点的半径(与屏幕接触的区域大小的估计值)
  • rotationAngle 半径中所述的椭圆被旋转到与接触区域最匹配需要旋转的角度
  • force 施加在表面上的力度
  • 备注: radius、rotationAngle和farce在android上的chrome浏览器需要前缀(如:webkitForce) 这三个属性在IOS6中不被支持
IE10和指针事件
  • 在IE10上有个单独的,被称为指针的事件,一般由鼠标单击,电子笔轻触,手指触摸着三种形式触发
  • IE10的指针事件
    • MSPointerDown 触摸开始
    • MSPointerMove 触摸移动
    • MSPointerUp 触摸结束
    • MSPointerOver 触摸点移动到元素之上
    • MSPoinerOut 触摸点离开元素
    • 事件对象(MSPointerEvent)继承于MouseEvent,并且包含page[X|Y]、client[X|Y]和device[X|Y]属性。同时也包含额外的指针属性

MSPointerEvent属性

  • hwTimestamp 创建事件的时间
  • isPrimary 指示该指针是否为主指针
  • pointerId 指针唯一ID(类似触摸事件的标识符)
  • pointerType 一个整数,标识了改事件来自鼠标、手写或者是手指
  • pressure 笔的压力,从0 - 255
  • rotation 从0 - 359 光标的旋转度,如果支持的话
  • tilt[X|Y] 手写笔的倾斜度
简单看一下touch事件

首先,准备好运行环境,我们用浏览器的开发者工具来模拟,这里我们用到的是chrome的模拟环境,目前只要是非IE,FF的浏览器默认都是以ctrl+shift+i 的方式就打开了开发者工具调试环境,点击小手机的图标,我们进入了手机模拟环境,我们可以选择进一步设置或者不设置其他的模拟方案,一般我们选择iphone 4,因为这个尺寸不管在中等显示器还是笔记本都很好 。

我们在这里写一个公共需要用到的代码,就是header里面的内容,以后举例就不必重写了:

<head>
	<meta charset='UTF-8'>
	<meta http-equiv='X-UA-Comatible' content='IE=edge,chrome=1'>
	<meta name='viewport' content='width=device-width, user-scalable=no, initial-scale=1.0'>
	<title>触屏事件</title>
</head>

好的,下面我们来简单看一下这几个针对webkit引擎的触屏事件:

  • css 结构:

    *{margin:0;padding:0;}
    .square{width: 100px;height: 100px;background-color: pink;}
    .square.start{background-color: purple;}
    .square.move{background-color: green;}
    .square.end{background-color: red;}
    
    
  • html 结构

    <div class='square'>touch me</div>
    
    
  • javascript 结构:

    var square = document.querySelector('.square');
    // 开始触摸
    square.addEventListener('touchstart',function(e){
        e.preventDefault(); // 阻止默认事件
        this.className = 'square start';
    },false);
    // 手指滑动
    square.addEventListener('touchmove',function(e){
        e.preventDefault();
        this.className = 'square move';
    },false);
    // 手指离开
    square.addEventListener('touchend',function(e){
        e.preventDefault();
        this.className = 'square end';
    },false);
    
    

上面简单的模拟了touchstart touchmove touchend 这三个事件,而touchcancel事件我们不去模拟它,不是很经常能用到。当手指从触摸到滑动到离开屏幕,你会看到屏幕上的那个div的颜色块会随着不同事件的触发而改变颜色。由此我们就可以用它来写一些案例了,比如移动端的轮播图,但是这样编程起来会比较麻烦,我们可以基于这几个事件来封装一下手势,至于手势的封装,我们以后再来说。

touch事件和click事件的比较

onclick事件会比touch事件慢300ms,在网上找到一篇文章说的比较清楚:
http://www.xiaomeiti.com/note/3585

自定义tap事件 (tap:轻击的意思)

—— 有时间再来补充,并且完善案例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
内容提要 《HTML5触摸界面设计与开发》专注于触摸界面的开发,内容的结构和优化网站的思路大概一致。上半部分涵盖了能使各类网站,特别是移动网站变快的基本概念。第2章和第3章告诉你如何创建一个简单的网站,并能快速加载。第4章可以帮助你使用缓存来提高用户再次访问时的速度。第5章是关于要摒弃一次性的页面加载方式和重构应用程序以使实际上和感觉到的性能都达到最优的。书的后半部分是专门讲触摸界面的,特别是尽可能地让它们更平稳和快速。   《HTML5触摸界面设计与开发》适合具有一定经验的Web开发者阅读参考。 目录 目 录 第1章 移动设备概述 0 1.1 触摸设备和桌面设备之间的差异 2 1.2 广泛使用的设备 3 1.3 HTML 56 1.4 神秘谷,是什么让触摸界面反应灵敏? 7 1.5 总结 9 第2章 创建一个简单的内容型网站 10 2.1 选择一个观念:移动优先或置后 12 2.2 创建标记 13 2.3 奠定基础的 标签 15 2.4 理解 Viewport 15 2.5 响应式的CSS 19 2.6 总结 24 第3章 提高第一次加载的速度 25 3.1 浏览器是如何加载页面的 27 3.2 为什么页面加载缓慢? 27 3.3 用YSlow和PageSpeed提升速度 30 3.4 解决常见的问题 33 3.5 将它们全部放在一起 41 3.6 总结 41 第4章 加快下一次访问的速度 42 4.1 在中缓存 44 4.2 为移动优化45 4.3 使用网络存储(Web Storage) 46 4.4 应用缓存(Application Cache) 53 4.5 总结 57 第5章 使用PJAX提升触摸体验 58 5.1 页面加载的代价 60 5.2 浏览器历史API 62 5.3 添加PJAX 69 5.4 总结 77 第6章 轻触VS单击:基本的事件处理 78 6.1 是什么让轻触不同? 80 6.2 触摸事件简介 80 6.3 处理轻触 83 6.4 总结 89 6.5 项目 89 第7章 CSS过渡、动画和变换 90 7.1 动画元素 92 7.2 CSS变换 105 7.3 总结 112 7.4 项目 112 第8章 JavaScript性能最优化 113 8.1 性能测试和调试 115 8.2 只写入DOM 116 8.3 给用户反馈的优先级是最高的 117 8.4 将它们一起使用:无限滚动 118 8.5 总结 127 8.6 项目 127 第9章 手势的基本内容 128 9.1 为什么用手势呢? 130 9.2 创建一个循序渐进增强的触摸控制 131 9.3 创建一个触摸控制的灯箱(lightbox) 136 9.4 总结 150 9.5 项目 150 第10章 滚动与滑动 151 10.1 滚动 153 10.2 布局失效 159 10.3 让鸟类浏览工具可滑动 161 10.4 总结 176 10.5 项目 177 第11章 双指缩放和其他复杂的手势 178 11.1 了解多点触摸的限制和支持情况 180 11.2 处理多点触摸 180 11.3 处理双指缩放 185 11.4 总结 195 11.5 项目 195
### 回答1: 触摸屏界面设计模板PDF是一种用于设计触摸屏界面的文件格式,它可以提供标准化的布局和样式,使得开发人员能够更加高效地设计和实现用户界面。 在使用触摸屏界面设计模板PDF时,设计师可以根据自己的需求选择合适的模板,然后将其应用于实际的界面设计中。这些模板通常包含各种元素,如按钮、文本输入框、下拉菜单等,设计师可以根据需要对其进行调整和定制。 使用触摸屏界面设计模板PDF的好处之一是它能够提高设计的一致性和可用性。通过使用标准化的设计元素和布局,用户可以更轻松地理解并操作界面。同时,由于模板已经经过测试和验证,所以设计师可以更加放心地使用它们,而不必自己从头开始设计。 此外,触摸屏界面设计模板PDF还可以节省设计时间和成本。设计师可以直接使用现有的模板,而不必从零开始设计每个界面。这样可以大大提高开发效率,缩短产品上市时间,并减少项目成本。 总而言之,触摸屏界面设计模板PDF是一种非常实用和高效的工具,它可以帮助设计师更快地创建高质量的触摸屏界面。通过使用模板,设计师可以提高设计的一致性和可用性,节省设计时间和成本,从而提供更好的用户体验。 ### 回答2: 触摸屏界面设计模板PDF可以帮助设计师快速创建高质量的触摸屏界面设计。这些模板提供了常见的界面元素,如按钮、文本框、下拉菜单等,设计师可以根据需要选择合适的元素进行组合和排列。通过使用模板,设计师可以节省大量的时间和精力,同时确保设计的一致性和美观性。 触摸屏界面设计模板PDF的好处是多方面的。首先,它提供了一个标准化的设计框架,使得不同设计师在设计过程中可以遵循相同的规范,从而提高团队的协作效率。其次,模板提供了各种常用的交互元素,设计师可以在此基础上进行修改和创新,以满足产品的特定需求。此外,模板也提供了一些常见的设计原则和最佳实践,设计师可以参考这些指导,以提高设计的质量和用户体验。 使用触摸屏界面设计模板PDF需要一些基本的设计软件知识和技巧。设计师可以使用常见的设计软件,如Adobe Illustrator、Sketch等,打开模板文件并进行编辑。设计师可以调整元素的大小、颜色和位置等,以适应产品的要求。一些模板还提供了交互效果的展示,设计师可以在模板中预览和调整这些效果,从而提供更好的用户体验。 总的来说,触摸屏界面设计模板PDF是一个有价值的工具,可以帮助设计师快速创建高质量的触摸屏界面设计。它提供了标准化的设计框架和常用的交互元素,同时也提供了一些设计原则和最佳实践。通过使用模板,设计师可以提高工作效率,保持设计一致性,并提供更好的用户体验。 ### 回答3: 触摸屏界面设计模板PDF是一种用于设计触摸屏界面模板文件,它通常以PDF格式提供。这种设计模板的目的是为设计师提供一个参考和指导,使其能够更加高效、准确地设计触摸屏界面触摸屏界面设计模板PDF通常包含了不同尺寸的屏幕布局,如手机、平板电脑等,并提供了一些常见的界面元素,比如按钮、输入框、菜单等。设计师可以根据项目需求选择适合的布局和元素,然后在模板上进行修改和定制。 此外,模板还包括了一些示例界面,以帮助设计师了解如何布置和组织界面元素,使其符合用户体验和界面美观的要求。这些示例界面还可以作为设计灵感的来源,帮助设计师更好地创作出独特的触摸屏界面触摸屏界面设计模板PDF的使用可以带来许多好处。首先,它可以帮助设计师快速入手,提高工作效率。其次,它可以确保界面元素的一致性和规范性,提高用户界面的易用性和可访问性。最后,它可以减少设计过程中的错误和重复工作,降低项目成本和风险。 总的来说,触摸屏界面设计模板PDF是一种有益的工具,它为设计师提供了一个基础框架和创作指南,帮助他们设计出优秀的触摸屏界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值