HTML5技术

三分钟学会用 js + css3 打造酷炫3D相册 - 剽悍一小兔

字号+ 作者:H5之家 来源:H5之家 2016-09-27 15:36 我要评论( )

(迎中秋)三分钟学会用 js + css3 打造酷炫3D相册Posted on 中秋节马上就要到来了,这是一个很有意义的节日,意味这团圆和美满。 为此,我也特别准备了一个案例 中秋主题的3D旋转相册 如图,这是通过Javascript和css3来实现的。整个案例只有不到80行代码,

三分钟学会用 js + css3 打造酷炫3D相册 Posted on

 

 

中秋节马上就要到来了,这是一个很有意义的节日,意味这团圆和美满。

为此,我也特别准备了一个案例

中秋主题的3D旋转相册

Paste_Image.png

 

如图,这是通过Javascript和css3来实现的。整个案例只有不到80行代码,我希望通过这个案例,让正处于迷茫期的js初学者感受到学习的乐趣。我会尽可能讲得详细,不需要你对css和js有多么高深的理解,你也可以跟着一步步做出来。如果你是为了讨女票开心,那么也完全可以把图片换成对方的照片,在某个特别的时刻给对方一个惊喜哦 ~

css3的强大使得网页的展示变得空前得丰富起来,再配合简单的js代码,就可以实现这个效果。好了,话不多说,让我们开始吧。

1. 页面模板 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>中秋节快乐</title> <style> </style> </head> <body> </body> <script> </script> </html>

** 1.1 ** :这句话的含义是,设置网页编码为utf-8,确保中文可以正常显示。

1.2.中秋节快乐 :设置网页的标题。

就是它:

Paste_Image.png

 

1.3. : 在style里面可以编写css样式,所谓的css就是相当于给dom元素披上了一层美丽的外衣。

1.4. : 在body区域里面添加dom元素,也就是一个网页的主题框架。比如div,p,a标签等,就是放在这个部分的。

1.5. :这是js脚本区域,单纯的说,就是为了动态地控制body区域里面的标签元素。之所以放在body的下面,是为了保证浏览器先把所有的dom元素都渲染完毕,才进行js操作。

2.调背景色

在style块里面给整个页面渲染成黑色调

*{padding:0px;margin:0px;} /*这是为了消除默认dom元素的内外边距,使得我们写css的时候更精确*/ body{background:#000;}

000是纯黑色

 

Paste_Image.png

 

F00是纯红色

 

Paste_Image.png

 

0F0是纯绿色

 

Paste_Image.png

 

00F是纯蓝色

 

Paste_Image.png

 

顺便提一下,#FFF肯定就是纯白色了。

在本案例中,我们将背景色设置为纯黑色。

3.制作3D相框

我们我们画一个id为photos的div作为相框来装载所有的图片。

<div id="photos"></div>

这句话一写,页面上啥也没有,div连宽度和高度都没有,这个时候,我们就要用css来给div添加一件美丽的外衣了。

#photos{ width:110px; /*宽度*/ height:180px; /*高度*/ border:1px solid #ccc; /*加一个灰色边框*/ margin:160px auto; /*水平居中,高度距离顶部100px*/ }

 

Paste_Image.png

 

这样还是平面的效果,没有3D的感觉,如果你不相信,我们可以用transform属性让它沿着Y轴起来,看看是不是3D的。

transform:rotateY(0deg);

这句话表示将div盒子沿着Y轴旋转0度。

让我们用谷歌浏览器打开(或者其他浏览器,不要太老就行),打开调试模式(大部分浏览器都是直接按一下F12就可以了),进入这样的界面。

按一下这里的箭头,就可以查看dom元素了。

Paste_Image.png

 

把鼠标滑到div上,点击。

Paste_Image.png

 

然后右边就会出来这样的界面,里面有这个div所有的样式。

Paste_Image.png

 

我们找到 transform:rotateY(0deg); 这一行,然后可以动态地改变它的值,我们点几下,选中 0deg 这几个字,再按键盘上的向上箭头,就会这样:

 

rotate.gif

 

哇,转起来了,好神奇!

我当初知道有这么个名堂的时候,心里就特别兴奋。

这还是2D的,没有3D效果,如何添加3D效果呢?

我们加上这两个属性,

transform-style:preserve-3d;/*设置3d环境*/ perspective:800px; /*设置景深为800px*/

所谓的景深, 简单说来,就是对好焦的范围。它能决定是把背景模糊化来突出拍摄对象,还是拍出清晰的背景。我看到网上是这么说的,喜欢摄影的朋友应该很了解。

为了突出效果,我们添加一张图片,顺便给图片加上一点倒影效果。

<div id="photos"> <img src="img/1.jpg" /> </div> #photos img{ width:100%; height:100%; position:absolute; box-shadow:0 0 8px #eaeaea; box-shadow: 1px -1px 6px #666; border-radius:4px; -webkit-box-reflect:below 3px -webkit-linear-gradient(top,rgba(0,0,0,0) 40%,rgba(0,0,0,0.5)); cursor:pointer; }

效果:

 

rotate.gif

 

看起来有点效果了吧。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 - 战神王恒

    教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 - 战神王恒

    2016-09-01 11:00

  • 三分钟玩转jQuery.noConflict() - 老俞

    三分钟玩转jQuery.noConflict() - 老俞

    2016-02-16 16:00

网友点评
n