UI动画优化技巧
知乎上一篇比较好的文章,分享一下:
tabs slide 内容过渡动画
- 好的动画会淡化页面直接的过度。
- 但更好的做法是使用连续的动画来来过度内容
当我们在设计交互式选项卡或弹出式菜单的时候,尝试将内容的问题和打开它的操作相关联,这样我们不单只能够实现一个很棒的过度动画,还可以清晰的知道不同内容直接的位置关系。如果你愿意还可以添加滑动手势。
连接卡片的共享元素
- 良好的设计会使用向左或者向右滑动来过度屏幕中的显示内容。
- 更好的做法是使用共享元素来建立两种状态直接的关系。
不同状态之间进行动画制作时,我们可以从共享元素出发,来链接不同的内容。例如右图 过渡前的卡片展开形成过度后的卡片。
使用瀑布流动画
左边的卡片通过滑动和淡入来显示。右边的卡片具有相同的动画,但每张卡片都有一个短暂的延迟。
- 良好的设计会改变元素进入屏幕时的位置和不透明度。
- 更好的设计是迅速错开最每个元素的显示,效果看起来会更好。
不同元素间动画相关联

- 良好的设计会通过上下文中移动来显示动画。
- 更好的动画是,当显示的内容的时候能够影响到周围的元素。
这种设计可以帮助用户感知到内容周围的元素。
让菜单显示在上下文中
- 良好的设计会在点击的位置显示菜单。
- 更好的动画是菜单内容从点击的地方展开
使用 button 展示不同的状态
- 良好的交互会在点击按钮的时候显示指示性内容。
- 更好的交互式使用按钮本身来指示不同的状态。
尝试使用按钮的容器来提供状态的可视反馈。
使用动画来强调重要的内容
- 良好的设计使用颜色,大小和位置突出显示用户需要注意的元素。
- 伟大的设计使用动画来关注那个重要的动作,而不会造成干扰。
参考:https://zhuanlan.zhihu.com/p/37402603
UI动画优化技巧的更多相关文章
- Unity UI性能优化技巧
本文将介绍一些提升Unity UI性能的技巧.更多优化技巧,可以观看Unity工程师Ian Dundore在Unite Europe 2017的演讲<使用Unity性能提升技巧>. 1.划 ...
- CSS 阴影动画优化技巧一则
本技巧来自这篇文章 -- How to animate box-shadow with silky smooth performance 本文不是直译,因为觉得这个技巧很有意思很有用,遂起一文. bo ...
- Unreal Engine 4 中的 UI 优化技巧
转自:https://mp.weixin.qq.com/s/bybEHM9tF-jBPxxqXfrPOQ## Unreal Open Day 2017 活动上 Epic Games 开发者支持工程师郭 ...
- Android UI性能优化详解
设计师,开发人员,需求研究和测试都会影响到一个app最后的UI展示,所有人都很乐于去建议app应该怎么去展示UI.UI也是app和用户打交道的部分,直接对用户形成品牌意识,需要仔细的设计.无论你的ap ...
- JavaScript 如何工作:渲染引擎和性能优化技巧
翻译自:How JavaScript works: the rendering engine and tips to optimize its performance 这是探索 JavaScript ...
- 【转】MyEclipse 2015优化技巧
MyEclipse 2015优化技巧 MyEclipse 2015优化速度方案仍然主要有这么几个方面:去除无需加载的模块.取消冗余的配置.去除不必要的检查.关闭更新. 第一步: 去除不需要加载的模块 ...
- 经验分享:多屏复杂动画CSS技巧三则
当下CSS3应用已经相当广泛,其中重要成员之一就是CSS3动画.并且,随着CSS动画的逐渐深入与普及,更复杂与细腻的动画场景也如雨后春笋般破土而出.例如上个月做的「企业QQ-新年祝福」活动: 感谢sh ...
- JavaScript 性能优化技巧分享
JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中.为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择. 本文从加载.上 ...
- 移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得
移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得 1. 安卓浏览器看背景图片,有些设备会模糊. 因为手机分辨率太小,如果按照分辨率来显示网页,字会非常小,安卓手机 ...
随机推荐
- type=number 的maxlength和可以输入E的问题
有一个输入框,要求只能输入1到999以下数字,于是 设置<input type="number" min="1" max="999"& ...
- 十七、springcloud(三)服务的注册与调用
1.启动服务注册中心Eureka(见上篇) 启动成功后,暂时无服务 2.项目框架 3.创建服务提供者(spring-cloud-houge-provider)jar a.application.pro ...
- bzoj 1814 Ural 1519 Formula 1 ——插头DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1814 普通的插头 DP .但是调了很久.注意如果合并两个 1 的话,不是 “把向右第一个 2 ...
- json转对象,奇怪的映射
偶然看见此代码,记录下,将来可能会用到. ObjectMapper objectMapper = new ObjectMapper(); if (StringUtils.isNotEmpty(vari ...
- 文件-- 字节相互转换(word、图片、pdf...)
方式一: /// <summary> /// word文件转换二进制数据(用于保存数据库) /// </summary> /// <param name="wo ...
- C++类中this指针的理解
先要理解class的意思.class应该理解为一种类型,象int,char一样,是用户自定义的类型.用这个类型可以来声明一个变量,比如int x, myclass my等等.这样就像变量x具有int类 ...
- 创建一个HTTP接口测试
jmeter Apache JMeter是Apache组织开发的基于Java的压力测试工具. Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对 ...
- git之sourceTree操作流程
1x.sourceTree的使用流程 12.Git管理工具对比(GitBash.EGit.SourceTree) 11.SourceTree使用SSH克隆码云项目 ====== 1x.source ...
- Linux下部署 apache+jdk+tomcat
1.输入下面的命令安装apache2: ubuntu@VM-164-86-ubuntu:sudo apt-get install apache2 当提示“您希望继续执行吗?”时 输入 Y 然后等待安 ...
- 杂谈2.py
tuple用圆括号括住的项的列表,这些项不能改变,括号内的值都是相关的 dictionary 已经配对的键和值的列表,用花括号括住 当创建对象并在其中存储信息的时候变量的类型就确定啦 type(obj ...