CSS3实例应用:制作照片长廊

2016-02-20 00:31 40 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - Web开发 】

CSS3动画尽管目前只有webkit内核的一些浏览器才支持,但是作为一个前端从业者,应该有长远的目光,尽早的去熟悉,今天就用CSS3做了一个照片长廊的应用,效果图:

Demo地址:请使用safari或者chrome猛击
制作步骤如下:
1.首先我们铺设一个渐变的背景色:

DaimaRen.cn © 2009-2010 by Tomie Zhang
background:  -webkit-gradient(linear, 0 0, 0 100%, from(#F9F9F9), to(#5F5F5F));

这是webkit内核的浏览器的写法(注由于CSS3动画其他内核浏览器暂时不能完全支持,所以本例没有考虑兼容,只针对webkit),意思是让body的背景从上往下渐变,渐变色从F9F9F9到5F5F5F。

2.设置一个容器来放置照片:

DaimaRen.cn © 2009-2010 by Tomie Zhang
.player {width:1500px;position:absolute;left:0px;top:0px;-webkit-animation-name: goleft;/*关键帧名称*/-webkit-animation-duration: 15s;/*播放间隔时间*/-webkit-animation-iteration-count:infinite;/*循环次数*/-webkit-animation-direction:alternate;/*动画方向*/}

因为我设置的单个图片宽是300px,一共放了5张,所以总宽度设置为1500,并让它浮起来,最关键的是下面的那几句,也是给它设置动画效果。每一句的作用见代码注释,如果想详细了解,可以查阅W3C的草案

3.设置关键帧动作。
这个是重点,你的动画想有什么效果就在这里设置:

DaimaRen.cn © 2009-2010 by Tomie Zhang
@-webkit-keyframes goleft {from {left: 0;-webkit-animation-timing-function:ease-in-out;}25% {left: -300px;-webkit-animation-timing-function:ease-in-in;}50% {left: -600px;-webkit-animation-timing-function:ease-in-out;}75% {left: -900px;-webkit-animation-timing-function:ease-in-in;}to {left: -1200px;}}

这里就是对goleft的关键帧的描述,其实也就是每一步步进的距离。
还不够炫,再加点东西:

DaimaRen.cn © 2009-2010 by Tomie Zhang
.player a:hover img {-webkit-animation-name: zoomIn;-webkit-animation-duration: 5s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;}

设置当鼠标移到图片上时,这张图片放大,这里我们又设置了一个叫zoomIn的关键帧,下面是它的描述:

DaimaRen.cn © 2009-2010 by Tomie Zhang
@-webkit-keyframes zoomIn {from {-webkit-transform: scale(1);}25% {-webkit-transform: scale(1.2);}50% {-webkit-transform: scale(1.4);}to {-webkit-transform: scale(1.6);}}

这里用到了CSS的转换属性里的放大效果,定义了每一步的放大尺寸,使得图片能够平稳的放大。
光看图似乎不够哦,加点音乐吧:

DaimaRen.cn © 2009-2010 by Tomie Zhang
div id="mbox"audio src="http://nio.name/content/mp3/09.mp3" autoplay="false" controls="true"/audio/div

用html5的音频标签添加一个播放器,听着歌看着X图。。。。。囧
最后再加个假的音乐均衡器吧:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)DaimaRen.cn © 2009-2010 by Tomie Zhang
div id="mBar"span/spanspan/spanspan/spanspan/spanspan/span/div

先写几个空的标签,然后我们继续用CSS3来控制它:

DaimaRen.cn © 2009-2010 by Tomie Zhang
#mBar span:nth-child(1){-webkit-animation-name: bar;-webkit-animation-duration: 3s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;background: -webkit-gradient(linear, 0 0, 0 100%, from(#FF00CC), to(#E8E8E8));}#mBar span:nth-child(2){-webkit-animation-name: bar;-webkit-animation-duration: 2s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;background: -webkit-gradient(linear, 0 0, 0 100%, from(#66FF00), to(#E8E8E8));}#mBar span:nth-child(3){-webkit-animation-name: bar;-webkit-animation-duration: 1s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;background: -webkit-gradient(linear, 0 0, 0 100%, from(#FF3300), to(#E8E8E8));}#mBar span:nth-child(4){-webkit-animation-name: bar;-webkit-animation-duration: 2s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;}#mBar span:nth-child(5){-webkit-animation-name: bar;-webkit-animation-duration: 3s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate;;}

用CSS3选择器很方便的给不同的标签定义不同时常的关键帧(这样就可以让它们出现错落的伸缩状态,以模拟一个音频波的效果),定义关键帧:

DaimaRen.cn © 2009-2010 by Tomie Zhang
@-webkit-keyframes bar {from {height:10px;}to {height:80px;}}

OK,这样一个完全无需JS的照片长廊就大功告成了,是不是很简单呢?发挥你的想象力也来CSS3吧!
附送一个使用CSS3的游戏:http://icefox.net/anigma/

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160220/1632023.html

延伸阅读
  最近闲来无事,上W3C转了一圈,粗略地浏览了一下尚未发布的CSS3,虽然还未被W3C正式发布出来,但还是能从已有的资料中窥出一些端倪,一个很明显的特征,CSS3制订得越来越细致了,某些细节之处完全超乎你所能想象的到的范围。 在这里不提及CSS3的语法,因为对于目前尚未有软件支持的CSS3,任何语法的探讨都像是空中楼...
对于设计人员和开发人员来说, CSS 一直是web设计过程中重要的一部分,随着 CSS3 的出现以及越来越多的浏览器对它的支持,设计师们有了更多的选择。现在,用纯CSS也可以实现各种各样很酷的效果了,甚至是动画。虽然有些效果不能跨浏览器(甚至是支持CSS3的浏览器)运行,有些只是展示并没什么实际用途, 但仅用CSS实现出这些效果也是一大进步。 ...
随着Web技术越来越先进,浏览器更新换代也很快,在国内很多网站已经有使用css3和html5的技术了,所以我们也应该多学习这些新知识,设计达人网站整理的资料,你在学校、图书上也是未必能看到的。 今天我们整理了10个纯CSS3制作的 面包屑导航 ,这些都是通过CSS3来编写,十分方便,而且实用。有些文章附有教程,大家可以学习研究一下。 漂亮面...
标签: Web开发
做了个css3文字效果,涉及css3投影,渐变,蒙版,伪类等知识点,现在写下设计思路,仅供参考。发个效果图大家看先: 投影shadowbox-shadow 一般我们都是用css3的box-shadow来实现盒投影,用text-shadow来实现文字投影,box-shadow设置方型盒子投影,用raidus的话可以让盒子产生圆角,看起来就很圆滑舒服,一般的写法是这样的: -moz-box-sh...
说起CSS3的新特性,就不得不提到 Media Queries 。本文比较详细,所以很多实际中用不到。所以如果只是想简单了解Media Queries,推荐参考 CSS3 Media Queries 。 CSS2.1定义了 Media 的部分,包括类型、组别和规则等。CSS并非为了显示器而创造,而是应用于各种各样的媒体,比如常见的显示器,越来愈多的手持设备,可能略显过时的电视机等等。 ...

经验教程

151

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部