常用的移动前端webapp交互细节

#常用的移动前端webapp交互细节

##select的表现方式
###PC端
select控件在传统PC桌面已经存在多年,由于在IE6等低版本浏览器容易造成层级错乱,一直被一些UI框架所抛弃,而用div层去模拟。
![传统的select控件](http://images.cnitblog.com/i/84053/201407/271218506505629.jpg)

###移动设备
而在移动设备上,select 控件的表现方式不太一样,如下图,分别是UC浏览器,小米的系统浏览器,及海豚浏览器的表现方式

可以看出,为适应移动设备小屏幕的特征,很多浏览器都对此进行优化改造。

###原理与思考
此现象的根本原因,是html只有文档标准,所以各个软件(浏览器)的实现有其具体表现。的确,要进行web标准的交互,只能制定文档层面的标准。但也带来外观不统一、控件表现、操作体验不统一的问题。像UC就要在选择之后进行二次确定,小米和海豚都不需要;小米的定位在底部,其他的都是居中表现的。

##单行数据内容过长的表现方式
###PC端
在新闻列表、文章标题列表的页面,很容易出现标题比内容长的情况,在PC端的一般表现方式是**类似excel表格的列宽调整机制**,如图(鼠标在上面拖动可以调整列宽):

![PC端的列表展现](http://images.cnitblog.com/i/84053/201407/271238480577480.jpg)

http://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&theme=default&dir=ltr&pitem=

或者可以利用**鼠标提示**来展现可能会超出范围的文字

###移动设备
而在移动设备上,上述方案并不可行,但是我们可以用另外的表现方式:`swipe`。如[示范页面](http://gh.p2227.com/m/swipe)所示

###原理与思考
原理是非常简单的,在一个宽100px,overflow非hidden的容器里面放进200px的内容,容器会产生滚动条。然后结合触摸设备的特点:滚动条并不占位置,并且是按住内容滚动的。这种表现方式就变得非常适应。

###组件化的swipejs
上面讲到的表现非常原始,对于大批量应用,我们一般参考现成组件[swipe.js](http://swipejs.com/),利用它去处理(可能在一些UI框架已经集成了此表现方式)。基本原理还是利用滚动条,然后再加入了transform等新css3特征使之有一定的动画效果并且接近原生的表现。

##按钮的大小与间隔
###PC端
在鼠标指针控制的PC端,各功能按钮可以非常小,并且可以放得非常紧凑,例如经典的window窗口右上角-□×三个按钮(最小化最大化关闭),置于右上角是非常方便的,并且一般人也不容易按错。

###移动设备
而在移动设备上,由于触摸屏和人手指的特点,按钮应该要做得大而有一定间距,如图,我们按钮的图标可能如红框所示,但是按钮的功能有效区域应该是整个黑框。

![移动设备的按钮](http://images.cnitblog.com/i/84053/201407/272046475884820.jpg)

##最后的话
最后,自己评价一下吧,我觉得本文还是非常直观的感觉与积累,并没有进行太深入的分析与原理探索,主要还是想抛砖引玉,想跟大家一起讨论一些用户体验的东西。

然后是自己的一些博文计划,列出来,让自己经常记得要整理~
---状态机
---fiddler应用(反向代理)
---angular的filter
---打包发布工具ant,grunt(工程化)

常用的移动前端webapp交互细节,布布扣,bubuko.com

时间: 2024-08-01 20:14:25

常用的移动前端webapp交互细节的相关文章

iOS开发笔记7:Text、UI交互细节、两个动画效果等

Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中遇到的一些细节问题,包括Masonry部分的问题. 动画介绍最近用到的两个,算是常用级别的,动画这部分之后会专门研究总结下. 最后介绍两个工具及三个Xcode使用设置的问题. 1.Text (1)UILabel显示多行文字并且文字置顶显示 不限制UILabel的高度(宽度需要设置,确定文字何时换行)

angular和web前端的一些细节

HTML5中的本地存储localStorage:一直存储在本地sessionStorage:伴随着session,窗口关闭就没了用法:localStorage.setItem("key","value")//设置变量localStorage.getItem("key")//获取变量localStorage.removeItem("key")//清除变量 angularJS中scope和rootscope的区别scope:用于单

移动前端webApp开发点滴积累20140629

#移动前端webApp开发点滴积累20140629 ##关于input行内居中的问题 给input设定一个比较高的高度,在某些版本的移动设备上,文字不能垂直居中,即使设定了相同的行高也不行.(见图) ![input行内居中](http://images.cnitblog.com/i/84053/201406/292134125542918.jpg) 在这种情况下,我一般不改变input本身的高度,而是在input外围包裹一层,再在外围层做效果. [demoURL](http://gh.p2227

剪不断理还乱的前端和交互

前端工程师和交互设计师之间理所当然的存在着一些联系.从另一个角度看前端工作,前端人员既能定义为设计师,更重要的是应该对用户心理有完整的了解和研究.有一句话可以充分的证明这两者之间剪不断理还乱的关系,"在前端眼里,UI设计稿是动态的". 前端与交互设计的工作内容相辅相成,他们有共同的目标,并且互相贯通,但仍然有着各自的职责. 前端开发工程师和交互设计师有什么区别? 前端人员的主要职责是与设计师协作,根据设计图用HTML和CSS完成页面的制作,以及页面效果的实现,经过代码的反馈由用户端的浏

十三种常用的Web前端框架

在做web开发的时候难免遇到一个问题,那就是,选择什么样的框架.下面把前端的框架简单的列一下. 1.flex Apache基金会今天发布了Flex 4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本. 需要注意的是,Flex目前还在孵化阶段,还不是Apache的正式项目,Flex 4.8也不是一个正式的Apache版本. Apache称,该版本标志着Flex新时代的开始,Flex的未来将由社区来驱动,而不是由一个公司驱动.开发者可以通过贡献代码,来帮助改进Flex,如

通过PHP前端后台交互/通过ajax前端后台交互/php基础传输数据应用/简单的留言版/简单的注册账户/简单的登录页/

  前  言  PHP     通过上一篇博客,注册账号与登录页面--前后台数据交互  跳转转到index主页,接下来进入主页留言板功能,通过ajax向后台传输数据,同时发表留言. 具体的内容分析如下: ① PHP中的数据传输-->>--在主页先添加基础HTML5基本框架,通过form表单提交数据 >>由主页传输给主页后台-->>主页后台经过转码保存实例化的文件 ②主页后台通过判断(是否保存文件)使用输出语句输出true或false,前台通过ajax中的post中的fu

php 接口与前端数据交互实现

最近在做前后端数据交互的尝试,也跳了很多坑,使用的是php+bootstrap-table+js,把一些收获记录在这里,方便查询. 这个小项目,仅有3个文件,分别为: crud.html data.php crud.sql 数据交互实现1:查询 mysql 数据库建表 php查询接口 前端数据展现 mysql 数据库建表 数据库名称:crud 第一个表名:t_users 主键:user_id,自增长排列 php: <?php //测试php是否可以拿到数据库中的数据 /*echo "444

springmvc与前端数据交互实例

一.从页面接收参数 Spring MVC接收请求提交的参数值的几种方法: 使用HttpServletRequest获取. @RequestMapping("/login.do") public String login(HttpServletRequest request){ String name = request.getParameter("name") String pass = request.getParameter("pass")

Java和操作系统交互细节

结合 CPU 理解一行 Java 代码是怎么执行的根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示.我们先来分析 CPU 的工作原理,现代 CPU 芯片中大都集成了,控制单元,运算单元,存储单元.控制单元是 CPU 的控制中心, CPU 需要通过它才知道下一步做什么,也就是执行什么指令,控制单元又包含:指令寄存器(IR ),指令译码器( ID )和操作控制器( OC ). 当程序被加载进内存后,指令就在内存中了,这个时候说的内存是