用HTML和CSS实现WWDC 2015上的动画效果

用HTML和CSS实现WWDC 2015上的动画效果

动画效果WWDC 2015

原文:https://cssanimation.rocks/wwdc15/

译者:周晓楷(@Helkyle



每年,苹果都会召开一次重大的会议。WWDC(苹果开发者大会)是iOS开发者和OSX开发者学习苹果先进高科技和移动设备与桌面软件新概念的好机会。

每一年的这个时候,他们都会制造出很多新创意,今年,我被一个用简单圆圈和形状制作出来的图标所惊艳,于是我决定用HTML和CSS来实现它。

WWDC 15邀请卡



苹果的图标通常都会使用颜色和形状的叠加,比如iOS 7 Photos图标。今年WWDC邀请函用了下面这货。

它由一些列层叠和半透明的形状构成,非常适合用HTML和CSS来实现。

HTML



设计这样一块负责的东西需要稍微分析一下。首先,我把它分解成各个部分。 大方向看它是由三种形状构成的,主要图形为8个大圆,我先把它们列出来:

这里我分割成几个类,这样做方便后面把large,circle,等类提取出来单独写,代码会整洁很多。

然后我们有八个小形状,处于大圆的上边,这些形状由4个圆形和4个方形构成,方形是由圆角的,我这样写HTML

我用了circle,squircle以及数字1到8来为各个div设置类名,这样做的好处是,后面为它们设置形状和颜色的时候很方便。

最后我们把两个大方形反倒logo中间。

同样,我用了large和squircle。

Logo和内容



接下来我们给中间的方形增添点内容。

这里我们用了一个SVG图片,还有邀请函的内容。邀请函的字体为San Francisco 但是字体不是OSX标准的,所以这里我换成Helvetica Neue Light。

写圆和方块样式



我要做的第一件事是把circle和squircle的样式写好。

大部分形状是大得,所以这我把默认值设大了。每个元素的定位都是absolute并且有一个白的边框。边框可能不会跟邀请函的一模一样,但是可以给形状多点光泽。

接下来我们给大圆加上样式,设置border-radius为50%,并且使用left,top值设置位置。

这个时候所有的圆都是在同一个位置上边。我们使用点小技巧,通过transform-origin的值来改变位置。默认的transform-origin值为(50%,50%),这里我们把值设为圆的底部,然后我们稍微旋转一下,形状就出来了。

让我们给每个圆添加CSS样式,仔细研究邀请函的图片,我们可以看到一个圆的位置在左下角。知道了这一点,我们就可以写出其他与圆圈的旋转角度。

每个块都有一个颜色,并且旋转一定角度。下面的动画动态展示了生成过程。

有了上面这些原型,我们给其他形状写样式。首先方形也可以看成有不同圆角的圆。

当我们定位了圆以后,我们给了特定的旋转角度和颜色。高兴的是,相同的形状也可以使用相同的样式,我们写好小形状的样式。

我们把这些形状设得小一些,并且离中心更远的距离。并且使用跟上面相同的诡计。

小方块



小的方形角度错了,我们需要给它旋转45deg。

这里有两种方法可供选择,我们可以给每个方形加多一个额外的元素,并旋转,或者我们选择CSS中的伪类。两种方法都行,不过我更倾向于后者。

首先我们把背景颜色,边框,盒子阴影去掉。

我们使用::after伪类来创建一个相同的方形,并旋转45deg。

现在我们有了大圆和其他小形状了。

内容方块



两个大的方形包含所有内容,我们把他们定位到中间,并且给他们一个比较深的透明色。

我们可以旋转一下第一个大方形。

添加动画



最初的邀请函是静态的,但是我们的网站叫做CSS Animation Rocks可不是浪得虚名。

我像把每个集合分开,为了做到这一点,我用span元素把它们分别包裹起来,后面就把动画应用到span元素上即可。

我们先给span元素定位,防止他们溢出。

每个span元素都定位到中点。

接下来我们把动画应用到每个span元素上面。

我们使用了相同的keyframes但是改变了动画时间,分别为10s,20s,30s。于是他们一分钟后回到原来的位置

keyframes 如下所示

开始位置旋转角度为0,最终旋转角度360deg。

重用CSS



这是个有趣的实验,但是我觉得最大的收获是重用了CSS.旋转和小形状使用相同的CSS很方便。还有所有的animation用了同一个keyframes。这样有助于压缩CSS文件的大小,保证加载速度。

前缀



创建这个例子的时候,我用了autoprefixer,这样就不用每次写动画都要考虑浏览器内核了。

时间: 2024-10-24 09:06:08

用HTML和CSS实现WWDC 2015上的动画效果的相关文章

强大的CSS:文字下波浪线动画效果

之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径向渐变绘制我们的波浪线效果,一个波浪线循环段是有一个朝上的半个圆弧和一个朝下的半个圆弧组合而成的. 所以,我们只要使用径向渐变绘制圆弧,再通过background-position控制两个圆弧的位置,让其前后拼接在一起就可以实现波浪线效果. 相关CSS代码如下: .flow-wave { backg

css实现鼠标移上图片遮罩效果

ie6对hover支持不完善,所以不兼容,最好在火狐或谷歌等标准浏览器中观看.Demo下载 效果如图: css: #demo {        width: 306px;        height: 204px;        padding: 3px;        border: 1px solid #e5e5e5;        margin: 100px auto 0 auto;        background: #fff;    } #demo:after {        co

jquery为表格行添加上下移动画效果

为项目列表项添加上下移动动画.首先想使用jquery animate来做到这一点.但我用的是table和tr作为列表和列表项,但jquery动画方法不支持table里的tr(Animations are not supported on table rows.).所以设法用其他解决方案.最后使用jq方法配合 CSS3 transform 实现. /** * @param {Object} $fstElem 目标行 * @param {Object} $scdElem 被换行 * @param {

WWDC 2015 - 概记

WWDC 2015已经过去快一个月了,今年似乎没有像去年那样变化巨大,一切都在慢慢演进,iOS.Mac OS.watchOS都变得越来越好. 新的三大平台的发布,iOS 9/Mac OS EL Capitan/watchOS 2 Apple提供了三种方式可以帮助减少App的大小 1. App Slicing: 以前的App里面会包含很多内容,比如32位/64位的二进制编译文件,@1x/@2x/@3x的图片资源文件,这样会导致程序变得越来越大.Apple通过App Slicing可以根据设备的情况

在WWDC 2014上,没提到的iOS 8 八大新特性

title: The following iterative sequence is defined for the set of positive integers: n n/2 (n is even) n 3n + 1 (n is odd) Using the rule above and starting with 13, we generate the following sequence: 13 40 20 10 5 16 8 4 2 1 It can be seen that thi

2015.12.1CSS3转换、过渡、动画效果及css盒子模型

css3转换 1.元素偏移 tranlate 通过translate()的方法元素从当前位置移动到给定的left (x坐标)和top(y坐标)位置参数 代码如下: div{ transform:translate(50px,100px): -ms-transform:translate(50px,100px): /*IE9*/ -webkit-transform:translate(50px,100px): /*谷歌苹果*/ -o-transform:translate(50px,100px):

CSS从大图片上截取小图标的操作_CSS精灵

1.编程思想在于:          使用background-position属性(设置背景图像的起始位置).这个属性设置背景原图像(由 background-image 定义)的位置,背景图像如果要重复,将从这一点开始. 2.CSS基础介绍: 1.如何定位背景图像: body { background-image:url('bgimage.gif'); background-repeat:no-repeat; background-attachment:fixed; background-p

只用css来美化的上传表单按钮(抄的迅雷的)

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>文件上传</title><link href="css/reset.css" rel="stylesheet" type="text/css"><style type="text/css">.wei

Richard Warburton与Raoul-Gabriel Urma在Devoxx UK 2015上回顾Java泛型历史

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/angular-2-react-native-roadmap Richard与Raoul向广大开发者提供关于Java 8的培训课程.近日,二人在Devoxx UK 2015上共同进行了一场演讲,回顾了Java泛型的起源与动机.介绍了目前一些不为人知的特性,同时对Java 10进行了展望.该演讲由3个精彩的部分构成:泛型的过去.现在与未来. 过去 正如Richard与Ra