一、场景与动画

为了拉动网站氛围,或者吸引用户浏览焦点,需要使用一些小动画。这种动画不是(gif)单纯的重复,而是需要需要一些控制和交互,比如在动画完成后打开一个对话框。动画有几个基本要素(时间控制,状态切换,事件触发)。

下面举一个天猫的场景:

一只蝴蝶的出现引起了小猫的注意,小猫慢慢的跟随蝴蝶靠近屏幕边缘,最后被莫名其妙的拉到了可视区域的外部,最后弹出天猫工具栏。

我们经常使用gif来制作动画。也确实可以用几个gif拼接来完成一个场景动画。中间的衔接使用js来控制,把上面的三个gif衔接起来就可以创建出一个场景动画。但是后来发现gif并不是最好的方案,下面来分析一下:

二、Gif方案分析

   1、图片预加载?

这会提高性能?但是,预加载gif可是不行的,gif一旦被加载,会立刻被执行,即使处于隐藏状态,当进行状态切换时,动画衔接就会出现不匹配,你不知道它正处于何种状态。

   2、JS控制?

很遗憾,gif无法通过JS来控制,一旦开动,你就只能等待,唯一的控制发式,就是,估计动画时间,并尽可能的延长下一次循环,这样才能进行平稳的状态切换。

   3、透明?

当小猫穿过logo时,需要图片透明。很高兴,gif确实可以实现透明,但是,很遗憾,他是存在毛边的,为了使它看起来舒服一点,聪明的设计师将它的边围了一圈背景色。

三、换一种方式

既然它存在这么多的问题,不如换一种方式?偶然,在一篇博文上看到了google的一种做法,使用png来实现,采用css sprite技术将动画帧合并在一张背景图片上,通过改变图片的位置来切换图像。这个就指哪打哪了。当然png实际上不支持动画(虽然号称支持),但是它支持透明,拥有更丰富的色彩。动画的本质就是多帧图片(包括绘制出来的图像)在时间轴上的切换。这种方式游戏开发中很通用。

这样我们就可以解决掉前面提到的几个问题了。

四、总结

制作小动画如果不要求交互,可以使用gif。如果需要交互且要求高品质的图像质量应使用png。使用canvas有点过了,除非已经复杂到游戏级别,那么是时候了。

如何制作网页小动画?——gif or png的更多相关文章

  1. 推荐几款制作网页滚动动画的 JavaScript 库

    这里集合了几款很棒的制作网页滚动动画的 JavaScript 库和插件.它们中,有的可以帮助你在页面滚动的时候添加动感的元素动画,有的则是实现目前非常流行的全屏页面切换动画.相信借助这些插件,你也可以 ...

  2. CSS3-实现单选框radio的小动画

    在微信上看到一个教程文,觉得制作的小动画还是很有意思的,自己也试验了一下.一开始动画怎么都不执行(我用的HB),因为内置浏览器对css3的不兼容.加上各种浏览器前缀后就好了.但是旋转那个效果,在HB里 ...

  3. CSS3——制作人物走路的小动画

    一个很简单的小动画,但是还挺有意思的,就是找这种图片很麻烦,我这里把我找的一张图片贴上来,这张图片是我在网上找的,又改了背景色和大小. <!DOCTYPE html> <html l ...

  4. [Mugeda HTML5技术教程之14]案例分析:制作网页游戏

    本文档要分析的案例是一个爱消除的网页小游戏,从中可以体会一些Mugeda API的用法和使用Mugeda动画制作网页游戏的方法. (一)游戏规则: 1.开始游戏时,手机出现在最上面一行的任意一格: 2 ...

  5. 怎么使用dreamweaver制作网页教程 dw建站设计网页

    对于网页制作相关专业人士一定对dreamweaver有所认识,下面小编就问大家总结一下相关网页制作的一些步骤,喜欢的朋友可以一起来学习一下   Dreamweaver这一款专业的网页制作软件,相信相关 ...

  6. Cleaver快速制作网页PPT

    原文首发链接:http://www.jeffjade.com/2015/10/15/2015-10-16-cleaver-make-ppt/ 写在开始之前 互联网时代,以浏览器作为入口,已经有越来越多 ...

  7. 前端开发css实战:使用css制作网页中的多级菜单

    前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...

  8. CSS3实现几个常用的网页小效果

    主题 由于最近比较忙,自己也没有很充裕的时间可以去做比较丰富的分享.今晚我挤出时间来制作这几个很常用的CSS3网页小效果.最近写JS的时间比例比较多,不过我还是比较钟情于CSS3.所以我还是坚持分享一 ...

  9. 利用DIV+CSS制作网页过程中常用的基本概念及标签使

    CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...

随机推荐

  1. BZOJ 4146 [AMPPZ2014] Divisors 解题报告

    这个题感觉比较小清新... 我们记录每个数出现的次数 $T_i$. 首先依次枚举每个数字,令 $ans = ans + T_i \times (T_i - 1)$,然后枚举这个数的倍数,令 $ans ...

  2. hdu 1024

    参考了一下 http://moxi466839201.blog.163.com/blog/static/18003841620110220374942/ 滚动数组   状态转移方程不太好理解 .... ...

  3. MySQL提示:The server quit without updating PID file问题的解决办法

    错误如下: [root@snsgou mysql]# service mysql restartMySQL server PID file could not be found![失败]Startin ...

  4. JS作用域与闭包--实例

    <script> "use strict" //函数作用域 function func(){ var arr = [1,3,5,7,9]; var sum = 0; f ...

  5. Android UI-开源框架ImageLoader的完美例子

    Android开源框架ImageLoader的完美例子 2013年8月19日开源框架之Universal_Image_Loader学习 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片, ...

  6. 解决 Your project contains error(s),please fix them before running your application问题

    原文地址: Android笔记:解决 Your project contains error(s),please fix them before running your application问题 ...

  7. ERDAS IMAGINE 9.2安装破解方法

    Install the application. Copy the license.dat and ERDAS.exe to C:\Program Files\Leica Geosystems\Sha ...

  8. 92. Reverse Linked List II

    题目: Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1- ...

  9. Hadoop初步认识

    Hadoop的介绍: Hadoop是一个适用于大数据的并行存储和计算的平台,是 Apache的一个用java 语言实现开源软件框架,实现了在大量计算机组成的集群中对海量数据进行分布式计算.Hadoop ...

  10. 一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr

    开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本: ...