图片/图形

纯CSS3打造逼真多层云彩动画特效

阿里云


这是一款效果非常炫酷的纯 CSS3 逼真的多层云彩动画特效。该特效使用多张透明的云彩 PNG 图片作为背景图片,使用 CSS animation 动画来制作云彩水平飘动的动画效果。

HTML 结构

该多层云彩动画效果的 HTML 结构非常简单:使用一个 div.sky 作为天馈的背景层,在它的里面放置多个子<div>作为云彩容器。

也想出现在这里?联系我们
创客主机
  1. <div class="sky">
  2.     <div class="clouds_one"></div>
  3.     <div class="clouds_two"></div>
  4.     <div class="clouds_three"></div>
  5. </div>

CSS 样式

作为天空背景的.sky 元素设置一个固定的高度,采用相对定位,并使用 overflow: hidden;来隐藏超出范围的元素。开始时天空的颜色设置为一个较浅的蓝色#007fd5。然后为天空背景设置了一个 sky_background 的 CSS3 animation 动画,该动画在 50 秒的时间内,将天空背景的颜色由浅蓝色过渡到深蓝色,动画的 animation-timing-function 为 ease-out,动画的迭代次数 animation-iteration-count 为无限循环。在该特效中,每一个元素都被设置了 transform: translate3d(0, 0, 0)属性,该属性用于开启 GPU 的 3D 效果,提高显示的性能。

  1. .sky {
  2.     height: 480px;
  3.     background: #007fd5;
  4.     position: relative;
  5.     overflow: hidden;
  6.     -webkit-animation: sky_background 50s ease-out infinite;
  7.     -moz-animation: sky_background 50s ease-out infinite;
  8.     -o-animation: sky_background 50s ease-out infinite;
  9.     animation: sky_background 50s ease-out infinite;
  10.     -webkit-transform: translate3d(0, 0, 0);
  11.     -ms-transform: translate3d(0, 0, 0);
  12.     -o-transform: translate3d(0, 0, 0);
  13.     transform: translate3d(0, 0, 0);
  14.   }
  15.   @keyframes sky_background {
  16.     0% {
  17.       background: #007fd5;
  18.       color: #007fd5
  19.     }
  20.     50% {
  21.       background: #000;
  22.       color: #a3d9ff
  23.     }
  24.     100% {
  25.       background: #007fd5;
  26.       color: #007fd5
  27.     }
  28.   }

云层 1 使用第一幅云彩 PNG 图片作为背景图片,使用绝对定位,相对于天空容器左对齐。高度和天空相等,宽度为天空容器的 3 倍。并执行 cloud_one CSS3 动画。该动画修改云彩层的 left 属性,使云彩水平移动。

  1. .clouds_one {
  2.     background: url("img/cloud_one.png");
  3.     position: absolute;
  4.     left: 0;
  5.     top: 0;
  6.     height: 100%;
  7.     width: 300%;
  8.     -webkit-animation: cloud_one 50s linear infinite;
  9.     -moz-animation: cloud_one 50s linear infinite;
  10.     -o-animation: cloud_one 50s linear infinite;
  11.     animation: cloud_one 50s linear infinite;
  12.     -webkit-transform: translate3d(0, 0, 0);
  13.     -ms-transform: translate3d(0, 0, 0);
  14.     -o-transform: translate3d(0, 0, 0);
  15.     transform: translate3d(0, 0, 0);
  16.   }
  17.   @keyframes cloud_one {
  18.     0% {
  19.       left: 0
  20.     }
  21.     100% {
  22.       left: -200%
  23.     }
  24.   }

云彩 2 和云彩 3 的 CSS3 动画基本类似云彩 1,只是动画的持续时间 animation-duration 不相同,云彩 1 的持续时间 为 50 秒,云彩 2 的持续时间为 75 秒,云彩 3 的持续时间为 100 秒。这样各个云层的动画时间各不相同,会得到一些背景视觉差的效果。

纯 CSS3 打造逼真多层云彩动画特效

已有 502 人购买
  • 4ogb
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!