习惯了开发典型的面向电脑端浏览器的网站在开发手机端网站或者移动App的时候面对很多新的问题,这些新的问题,在我看来或多或少会给浏览者在使用网站或App的时候带来不好的用户体验,对于一个产品级应用,用户体验应该是在开发过程中最先也是最需要考虑的。这些问题,大部分是click事件带来的触摸方面的不足,这里简单总结记录,文中内容来自Stephen Woods写的《HTML5触摸界面设计与开发》这本书。

  1. 移动设备和桌面设备之间的差异

    规格,也就是尺寸

    移动设备的计算能力不足

    人们使用触摸设备的方式不同(现在绝大多数智能手机都是触摸设备)    这也是本文主要涉及到的内容。

  2. 使用PJAX提升触摸体验

    所谓的PJAX,就是用pushState和Ajax结合起来,Ajax负责更新内容,pushState负责更新URL。

    为什么不仅仅使用Ajax?

    大多数用户都知道URL是什么,这本书《HTML5触摸界面设计与开发》给出了一个忠告(或者在其他地方也可以看得到),破环链接是一个极大的错误。所以(我把这句话当成正确的,希望以后可以理解),如果用JavaScript去改变页面中的URL地址,当用户单击的时候,我们将会破坏所有的URL,更好的做法是使用HTML5浏览器历史API,因为保持链接的正确性才是最重要的。

    浏览器历史API

    想像一下,浏览器历史,就像一堆卡片一样,每一张卡片代表了用户曾经访问过的一个URL。浏览器历史是一个很大的栈,它存储了浏览器标签页的访问历史,这也是后退按钮能起作用的原因。浏览器历史API为我们提供了两个新的方法去操作这个栈:pushState和replaceState。

    pushState,允许我们在前面加入新的卡片,并且移除它前面所有的卡片。这和用户单击一个链接大致相同:它加入了一个新的状态项,如果它处在历史栈的中间位置,在它前面的所有链接都将丢失。replaceState允许我们替换当前的卡片,且并不影响栈的其他部分。浏览器历史API还提供了一个popstate的事件,它将在用户因使用"后退"或"前进"按钮而导致状态堆位置发生改变时候触发。

    1. 用pushState改变历史

      history.pushState方法有三个参数:状态、标题和URL,这里标题的参数目前没有任何浏览器支持,也不是指窗口的标题,所以只需要传null

       

    2. 监听popstate事件

HTML5与触摸界面的更多相关文章

  1. HTML5+CSS3设计界面

    近期在做一个关于房屋装修的手机上的项目,前台是用H5+C3完毕的,挂在微信上.全部相对来说不是非常难. 这段时间通过敲Html5+Css3.分享一些自己觉得值得学习的知识. 都非常easy.自己操作一 ...

  2. html5的触摸事件

    1.触摸事件有哪些 touchstart,touchmove,touchend 2.分别什么时候触发 touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发. touc ...

  3. html5做webAPP界面适配总结

    一.px em rem px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的. em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相 ...

  4. 新手入门HTML5有什么推荐的书籍?

    很多想迈入HTML5开发行列的人,都会问一个问题:要成为一个更好的开发人员,我应该读哪些书?有哪些HTML5开发的书籍推荐吗? 有人说开卷有益,读万卷书行万里路;有人说,书不在多,精益求精;有人说,书 ...

  5. 关于HTML5,最牛逼的10本书!

    关于HTML5,最牛逼的10本书! 关于HTML5,最牛逼的10本书.rar HTML5+CSS3从入门到精通 李东博 著 推荐指数:★★★☆ 简介:本书通过基础知识+中小实例+综合案例的方式,讲述了 ...

  6. 20个专业H5(HTML5)动画工具推荐

    AnimateMate 可能是最好的 Sketch 动画插件.Sketch 目前被广泛应用于 HTML5 的原型界面设计,或者被应用于数据可视化的,动画部分则一般经由软件 Principle 等实现. ...

  7. PJAX实现

    一.浏览器历史API 浏览器历史就像一堆卡片,如下所示:

  8. Kinect for Windows SDK 1.8的改进及新特性

    今年3月, 微软推出了Kinect for Windows SDK 1.7 更新,包括了手势识别 Kinect Interactions 和实时 3D 建模 Kinect Fusion 两项新技术. ...

  9. cubic-bezier贝塞尔曲线css3动画工具

    今天在一本叫<HTML5触摸界面设计与开发>上看到一个做弹跳球的复杂动画效果,首先加速下降,停止,然后弹起时逐渐减速.是用cubic-bezier贝塞尔曲线来完成的.所以特地去学习了一下关 ...

随机推荐

  1. jQuery数据类型总结

    jQuery除了包含原生JS中的内置数据类型(built-in datatype),还包括一些扩展的数据类型(virtual types),如Selectors.Events等. 1. String ...

  2. Python入门笔记(25):Python面向对象(2)

    一.类 类就是一个数据结构,封装了数据和操作. 类的声明与函数的声明十分类似: class newClass(object): """class documentatio ...

  3. Python基础:序列

    一.概述 序列类型(Sequence Types)类似于C中的数组,它是包含一组成员的连续列表,这些成员紧邻排列,并且可以通过序号(下标偏移量)访问其中的一个或多个成员.序列类型的示意图如下所示: P ...

  4. u-boot移植总结(四)u-boot-2010.09框架分析

    (一)本次移植是基于FL2440,板子的基本硬件: CPU 型号为S3C2440,基于ARM920T,指令集ARMV4,时钟主频400MHz SDRAM H57V2562GTR-75C 2片*32MB ...

  5. [PHP] 实现路由映射到指定控制器

    自定义路由的功能,指定到pathinfo的url上,再次升级之前的脚本 SimpleLoader.php <?php class SimpleLoader{ public static func ...

  6. java猜数字游戏

    import java.util.Scanner; //导入包 class GuessNum { public static void main(String[] args) { int num = ...

  7. 测试驱动开发(TDD)的思考

    极限编程 敏捷开发是一种思想,极限编程也是一种思想,它与敏捷开发某些目标是一致的.只是实现方式不同.测试驱动开发是极限编程的一部分. 1.极限编程这个思路的来源 Kent Beck先生最早在其极限编程 ...

  8. DOM笔记整理及应用实例

    一.前言 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model).HTML DOM 模型被构造为对象的树 通过可编程的对象模型,JavaScript 获得了足够的 ...

  9. Android5.0新特性——Material Design简介

    Material Design Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干 ...

  10. 详解JavaScript函数模式

    JavaScript设计模式的作用是提高代码的重用性,可读性,使代码更容易的维护和扩展.在javascript中,函数是一类对象,这表示他可以作为参数传递给其他函数:此外,函数还可以提供作用域. 创建 ...