《HTML5触摸界面设计与开发》——1.4 神秘谷,是什么让触摸界面反应灵敏?...

本节书摘来自异步社区《HTML5触摸界面设计与开发》一书中的第1章,第1.4节,作者: 【美】Stephen Woods 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 神秘谷,是什么让触摸界面反应灵敏?

我有个两岁半的儿子。他从一岁开始就能解锁iPad并找到他想要的应用程序。他还不会说话,就会解锁iPad。我与其他家长交流意见,发现并不是因为我的儿子智商超群。触摸界面给了孩子们直观的感受:触摸和移动东西,是人类做的最基本的事情之一。触摸界面直观又强大。但它也很容易令人失望。

有一个理论在机器人学里被称为“神秘谷”:机器人看上去越像人,就越对我们有吸引力,但当机器人的外形快要逼近真人的时候,会让我们觉得很奇怪,甚至被吓得毛骨悚然。“谷”是机器人与人类相似程度与人类舒适度等级的映射关系的拐点。

触摸界面让人感觉很自然,感觉像在移动周围真实的物体。不正确的运用时,给人的感受不是慢,而是失望。直接操纵的假象被打破时,触摸界面也不再让用户感觉自然。这种失望感仿佛掉进了神秘谷,用户不再感觉自然,而是感觉怪异。
**
1.4.1 传送长奥布莱恩和直接操纵**
像我这一代的许多人一样,我第一次触摸界面是通过《星际迷航:下一代》。如果你没有看过的话,可以想象一下:船上所有的控制面板为触摸屏,实际上是多点触摸界面。显然,这样做的原因完全是因为预算。电影的创作者希望在所有的控制面板中表现大量的复杂性,但以一个脱口秀节目的预算支付不起建造这些设备的费用。于是,他们想出了在胶片上印出界面,并在后面用灯光,创造出触摸屏的外观的方法。

传送长奥布莱恩,也就是操纵这艘飞船的人,用三指滑动手势来发动飞船。我觉得那个手势真的很有趣。界面上有三个滑块,演员会自然想到去触摸和拖动滑块,就好像操纵真正的物体。这是人们所期望使用触摸界面的方法。当他们触摸屏幕时,能凭直觉感到,与它进行交互,就像在移动一个真正的物体。

苹果的触摸接口指南称这个概念为“直接操纵”,而不是通过控制器来控制。在理想情况下,触摸界面给用户的印象是,直接操纵交互的东西。

你会注意到,当传送长奥布莱恩的手指移动时,小指示器也在随之移动。这就能保持直接操纵的假象。小指示器也提供反馈,表明计算机正在记录他的动作。

1.4.2 给用户反馈
我会想,用户界面只需让人感觉快,而无需真的快。只需及时响应—立即响应用户,让他知道有反应了。我最喜欢的例子是TiVo。不是我现在的高清电视,而是在1999年发售的TiVo。那个电视盒有一个54 MHz的CPU和仅有的16 MB的RAM。虽然TiVo有特殊的硬件对视频编解码,但从用户点击一个影片到开始播放可能还是需要一段相当长的时间。TiVo的投诉有很多,但从来没有人抱怨它的速度慢。这是因为TiVo有用户熟悉的哔嘣声。

当用户点击一个影片时,能立即听到声音。我不知道工程师花费了多少时间才确保声音出现的及时性,这恰恰就是高明的地方。声音让用户能立即知道机器已经收到了他的请求。

在网页的用户界面上,这种及时的反馈是同样重要的。对于桌面电脑的网页,大多数人和设备的交互是分离的:单击后对应的效果出现。对于触摸界面,许多交互是连续的,因为它们是手势交互。当用户在屏幕上用手势操作时,不能等到手势完毕再做反馈,因为根据用户的理解,它们甚至会认为手势没有生效!

我们来谈谈滑动。滑动是指在屏幕上移动手指来执行一些操作。理想的情况下,界面元素应该随着用户的滑动而移动。如果是在页面之间滑动,整个页面应该随着手指移动。如果界面不动,那么在滑动结束之前,就无法知道到底发生了什么。没有反馈的滑动手势会像一个键盘,在你输入一个字母之前,它不会有任何反馈。手势不能等到完成时才反馈。为了让界面感觉反应迅速,还必须是连续的反馈,当用户的手指移动的时候,界面也应该移动。

如果用户在用手势操作,即使在操作完毕时,界面也必须跟着移动。如果界面在手势操作时中途停止移动了,就感觉像死机了一样。

例如,如果你创建了一组幻灯片,用户可以在幻灯片之间滑动,当用户到达最后一张幻灯片时,你不会希望手势响应停止,用户会以为界面卡死了。而是让用户继续滑动,当用户松手时,应该快速地将上一张弹回。用户得到了她的手势已经被机器接收到的反馈,只是幻灯片已经放完了。这是苹果如此严重地依赖在手势结束时的“迅速弹回”的原因。这是告知用户已经到了最后,而又不破坏手势意义的唯一办法。

规范
每个用户界面有它的规范。在桌面上有窗口、按钮、滚动条、关闭框。在移动界面,有一组新的规范。先行者苹果创建了两套UI规范。

你不需要一切都与原生的iOS应用程序完全一样。但知道一些手势和元素在移动领域的意义十分重要:不要使用滑动手势来表示选择,因为原生应用程序中这表示删除。不要更改操作系统通常会保留的手势(比如按下并保持一段时间表示呼出内容菜单,双指捏紧为缩小,双击为放大),除非你重新实现相同的基本功能。(你会在第10章中了解更多有关“滚动和滑动”的知识,在第11章中了解更多有关“双指缩放和其他的复杂的手势”的知识。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之获取移动网络ip

1、获取移动网络ip 2、代码 public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddres…

GCD

使用GCD 什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出&#xff0c;并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。 GCD和…

软件测试技术——系统测试

文章目录一、功能测试二、回归测试定义测试时机三、性能测试定义目标性能测试类型压力负载测试1.并发性能测试&#xff08;重点&#xff09;2. 疲劳强度测试3. 大数据量测试压力测试&负载测试四、其他非功能测试1. 安全性测试功能性测试&安全性测试2. 可靠性3. 容错性测…

nagios-3.4.3搭建

nagios转载于:https://blog.51cto.com/yujianglei/1557718

.NET Core程序瘦身器发布,压缩程序尺寸到1/3

.NET Core具有【剪裁未使用的代码】的功能&#xff0c;但是由于它是使用静态分析来实现的&#xff0c;因此它的剪裁效果并不是最优的。它有如下两个缺点&#xff1a;不支持Windows Forms和WPF&#xff0c;而对于程序剪裁功能需求最强烈的其实反而是桌面程序的开发者。无法删除运…

Android之切换账号登录依然能登录成功问题解决办法

1、问题 切换账号登录依然能登录成功 2、原因和解决办法 原因是因为我调用了第三方的sdk,里面有个生成签名文件的函数&#xff0c;写死了一个参数&#xff0c;导致每次生成签名文件内容都是一致&#xff0c;导致到服务端验证通过成功。 分析路线&#xff1a; 1、 先打印日志…

《大型网站服务器容量规划》一1.1 容量规划背景

本节书摘来异步社区《大型网站服务器容量规划》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a; 郑钢 责编&#xff1a; 张涛&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 容量规划背景 如今人们已经习惯从互联网上获取信息&#xf…

iptables配置详解

-A参数是将规则写到现有链规则的最后面-I 参数默认是将一条规则添加到现有规则链的最前面&#xff0c;当然也可以指定插入到第几行 行数可以用数字来指定 比如说将一条规则添加到某一条链的第三行 那么原来在第三行的规则就会降到下一行第四行。例如&#xff1a; iptables -I …

软件测试技术——单元测试和集成测试

一、单元测试 为何要进行单元测试&#xff1f; 尽早发现错误 错误发现越早&#xff0c;成本越低。发现问题比较容易修正问题更容易 1.定义 单元测试是对软件基本的组成单元进行独立的测试 2.目标 单元模块是否被正确编码。信息能否正确地流入和流出单元。在单元工作过程中…

文本框输入值文字消失常用的两种方法

1.这种相对来说较简单&#xff0c;举例子&#xff1a; <input name"textfield" type"text" value"点击添入标题" style"color: gray;" onfocus"if (value 点击添入标题){value }" onblur"if (value ){value点击添…

C语言之strstr函数类似Java字符串的contain函数

1、strstr函数介绍 找出haystack字符串在needle字符串中第一次出现的位置&#xff08;不包括needle的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c;返回空指针。 2、举例 3、运行结果

软件测试技术——软件测试概述

文章目录一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义 正向观点逆向观点验证软件是否能正常工作…

《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...

本节书摘来自华章计算机《编写高质量代码&#xff1a;改善c程序代码的125个建议》一书中的第2章&#xff0c;建议14-2,作者&#xff1a;马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议14-2&#xff1a;在右移中合理地选择0或符号位来填充空出的位 在右移…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…

WPF 基础控件之 DataGrid 样式

此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.2.001—代码如下一、创建…

C#页面抓取信息

//根据Url地址得到网页的html源码private string GetWebContent(string Url){string strResult"";try{HttpWebRequest request (HttpWebRequest)WebRequest.Create(Url);//声明一个HttpWebRequest请求request.Timeout 30000;//设置连接超时时间request.Headers.Set…

C语言之unsigned char和uint8_t

1、问题 今天搞openssl里面的客户端和服务端生成的随机数时候&#xff0c;PC端用的uint8_t数据类型&#xff0c;我用的是unsigned char类型&#xff0c;特么这不日了狗&#xff0c;不一样&#xff0c;后来问了pc端的人&#xff0c;和到网上查了下他们的区别 2、解释 unsigned…

电子商务应用课程知识整理 第五章-搜索引擎优化(SEO)

文章目录一、认识SEOSEO概述SEO相关术语SEO黑帽SEO白帽PV&#xff08;Page View&#xff09;跳出率沙盒效应SPAM快照二、SEO常用技术1. 网页title的优化要点&#xff1a;2. 关键词的选取注意的问题&#xff1a;需要避免的问题&#xff1a;3. 元标签关键词的优化要点&#xff1a…

在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)

RAID 即廉价磁盘冗余阵列&#xff0c;其高可用性和可靠性适用于大规模环境中&#xff0c;相比正常使用&#xff0c;数据更需要被保护。RAID 是一些磁盘的集合&#xff0c;是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为&#xff08;组的&#xff09;集合。 创建…

【Maven实用技巧】03. Maven 编译打包时如何忽略测试用例

跳过测试阶段&#xff1a; mvn package -DskipTests 临时性跳过测试代码的编译&#xff1a; mvn package -Dmaven.test.skiptrue maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为&#xff0c;即跳过编译&#xff0c;又跳过测试。 指定测试…