GJM :JS + CSS3 打造炫酷3D相册 [转载]

 

中秋主题的3D旋转相册

如图,这是通过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. :设置网页的标题。

就是它:

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

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

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

2.调背景色

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

 

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

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

3.制作3D相框

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

 

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

 

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

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

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

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

 

把鼠标滑到div上,点击。

 

 

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

 

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

 

 

哇,转起来了,好神奇!

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

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

我们加上这两个属性,

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

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

 

效果:

 

 

看起来有点效果了吧。

我一共准备了8张图片,现在将剩余的图片也添加进来。

 

 

到目前为止,所有的图片都是叠在一起的,我们思考如何将他们分散开来,围城一圈呢?

4.将图片散开,围成一圈

在3维坐标中,不仅有X轴,Y轴,还有Z轴。我们首先要明白Z轴是什么概念,Y轴是左右旋转,上面已经演示过了,不难想到X轴应该就是上下旋转,那么Z轴呢?

我们先把倒影去掉,看起来清楚些。

 

 

 

 好,让我们来一探究竟:

 

 

 

 

哇,原来如此!

Z轴就是垂直于横切面的一条轴!

我们现在不需要绕着Z轴旋转,试试让相册沿着Z轴移动一段距离如何?

translateZ可以帮我们实现这一个效果。

回到正题。

我们的目的是让所有的图片分散开来,那么第一步就是让每一张图片均匀地根据Y轴转过一个角度。这个角度是多少呢?

一圈是360度,除以图片的张数,就是每一张图片转过的角度了。

我们用js来实现:

 

 

 

代码是比较明了的,就是一个除法运算,然后给每一张图片增加一个旋转样式即可。

 

效果:

 

 

可见,每一张图片都转过了一定的角度。

也就是说,这个时候,每张图片的Z轴都不一样了!

如果你还是觉得有难度,没关系,我们拿其中一张图片来举例,让它沿着它自己的Z轴向外移动。然后你就明白了。

 

 

 

 

 

 

显而易见了,就是这么回事,那么解决方案自己就出来了,我们只需要在每一张图片根据Y轴旋转的时候,就让它沿着Z轴“飘”出来就可以啦!

距离稍微大一点,就380px吧。

 

 这样有点太水平了,我们让整个相册往下一点,达到一种稍微有点俯视的效果。让相册根据X轴往下移动个10px就可以了哦。 

 

 

 

 

 

5.绘制透明酷炫底盘

本案例中,在相册底部,还有一个透明的底盘,现在我们开始实现这个效果。

 

其实,它就是一个放在photos里面的div。我们通过定位布局和css3特性就可以实现了。

上代码:

 

top属性是一点点调出来的,你也可以用浏览器的调试模式一点点来调整高度。

效果:

 

 

 

6.自动旋转

最后一步,还是由js代码来收尾,我们使用js的定时器setInterval,每隔30毫秒就让整个相册转过一个非常小的角度就行了。

 

 
  

代码应该还是比较明了的。

最终效果就出来了:

 

今天做了一点小修改,我把photos的margin由之前的100px auto变为160px auto了。

从效果来看,相册在旋转的过程中,会有一定的偏移,虽然我个人觉得这样的效果也挺有趣的,不过,如果你不希望它的位置发生偏移的话,只需要在photos外边在逃一层div,然后把景深移到外层div就ok啦。

 演示地址: http://s-335245.gotocdn.com:8080/demo.html?path=3d

Tdou
关注 关注
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
css3制作炫酷动画相册
lrp9090的博客
05-08 1331
1. 特别说明:本段代码未作兼容处理,仅在高版本谷歌浏览器中起作用哟; 2.这里我使用的是网络图片,想制作属于自己相册的小伙伴们,可以新建img文件夹,在css样式中,将背景土拍你路径替换为自己的图片就好啦; 3.下面就开始贴代码咯;先来看看效果图(有三个动画效果); 4.基础html代码 <!DOCTYPE html> <html lang="en"> <h...
CSS3制作炫酷3D相册
RoddyLD的博客
12-28 1007
CSS3制作炫酷3D相册 整体效果如下所示: 整体代码如下所示: html中的代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>3D炫酷相册</title>
CSS3制作酷炫的三维相册效果
09-24
主要为大家详细介绍了CSS3制作酷炫的三维相册效果的具体代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
炫酷JS弹性相册代码
04-23
非常酷的效果,兼容性良好,可直接移植,非JQ代码,纯JS编写
CSS3实现常见多种相册效果
weixin_30515513的博客
10-07 126
本文包含 1.CSS3中2D转换和3D转换的介绍。 2.在相册中的应用实例。 CSS3中的转换效果和动画效果十分强大好用,可以实现一些常见的动态效果。 如此一来,CSS3便可以代替许多jQuery的功能。 先来介绍一下CSS中的转换。 CSS3中转换有2D转换和3D转换之分。 2D转换(简单来说就是让某个元素改变大小和位置): 1.translate()方法...
python3d相册源代码_jsCSS3炫酷3D相册展示
weixin_29751415的博客
02-03 1391
jsCSS3炫酷3D相册展示*{margin:0;padding:0;}body{background:url(img/bg.jpg);width:100%;height:100%;overflow:hidden;};h1{width:277;height:76px;margin:30px auto 0;}.xc-3D{width:100%;height:300px;background:#ff...
GJM-App:GJM - 安卓
05-29
GJM-App: GJM - 安卓】 在安卓平台上的GJM-App是一款基于Java编程语言开发的应用程序。GJM(可能代表一个特定的名字或项目缩写)旨在为用户提供一套功能丰富的移动体验,专注于Android设备。由于涉及到Java语言,...
基于弱监督的3D人体姿态估计方法
3刘文涛3陈倩3梁琳1中山大学2北京大学3商汤科技1chenxp37@mail2.sysu.edu.cn2linjunyi@pku.edu.cn3{liuwentao,qianchen} @ sensetime.com4linliang@ieee.org摘要最近的研究表明,在大规模室内3D数据集和复杂的网络...
jm.potvin.xyz:我的个人网站
03-27
jm.potvin.xyz 我的个人网站和博客。 我的网站设计和网站开发技能的小型展示。 如何访问? 通过现代的浏览器。 只需前往。 执照 您始终可以克隆此存储库。 这就是为什么我在Github上提供它的原因。...
html5+css3实现3D相册的功劳
11-15
基于html5+ccs3实现的3D相册功能。此压缩包包含5个相册的demo,是经过集结了删选过最精华的几个案例上传进去。若觉得还不错的话请个给好评
CSS的3D图片相册效果
04-11
CSS模拟的3D图片相册效果,优秀的程序,可以用作图片资源浏览
HTML5+CSS3+JS各种酷炫图片特效各种酷炫图片特效
04-26
运用HTML5+CSS3+JS技术制作的各种酷炫图片特效
用HTML5的炫酷相册
04-24
挺酷炫的html5相册
一款超炫HTML5 3D立体图片相册效果
09-25
HTML5 3D立体图片相册代码是一款超炫HTML5 canvas 3D立体图片相册幻灯片效果代码。
jsCSS3炫酷3D相册展示
weixin_30387423的博客
08-25 714
<!doctype html> <html> <head> <meta charset="UTF"> <title>jsCSS3炫酷3D相册展示</title> <style> *{margin:0;padding:0;} body{background:url(img/bg.jpg);width:...
一款炫酷的相册动画合集【源码分享】
IEYES的博客
09-16 3752
这是一款炫酷的相册动画合集,集合了粒子、雪花、气泡、蝴蝶心形路径、星星、相册翻页等效果,有需要的可以点击下方名称链接下载。 效果图 炫酷的相册动画合集 整理不易,欢迎大家交流学习。 ...
CSS3 3D相册
李牙刷儿的专栏
12-18 1830
今天来做一个基于CSS3 3D属性的3D相册效果
酷炫相册效果
03-08
相册效果相册效果
Traceback (most recent call last): File "GJM_golden.py", line 278, in <module> RuntimeError: input(): lost sys.stdin
最新发布
01-24
这个错误提示表明在运行名为"GJM_golden.py"的Python脚本时,出现了一个运行时错误。具体错误是"RuntimeError: input(): lost sys.stdin?"。这个错误通常发生在使用input()函数时,系统无法读取标准输入流(sys.stdin)的情况下。 要解决这个问题,你可以尝试以下几种方法: 1. 检查代码中是否有对sys.stdin的操作。确保没有对sys.stdin进行关闭或重定向的操作。 2. 确保你的代码在使用input()函数之前没有关闭或重定向标准输入流(sys.stdin)。如果有,你可以尝试重新打开或恢复标准输入流。 3. 如果你在使用input()函数之前对sys.stdin进行了重定向操作,你可以尝试使用其他方法来获取用户输入,例如使用命令行参数或读取文件。 4. 如果以上方法都没有解决问题,你可以尝试重新安装Python解释器,以确保系统中的Python环境没有出现问题。 希望以上方法能够帮助你解决问题!
写文章

热门文章

  • GJM : 发布APK 到 Google Play(Android Market)官方市场 1273
  • 2019 AIproCon 开发者大会 PPT 1243
  • GJM : UGUI 缩放循环拖动展示卡牌效果 1200
  • GJM : 常用网站收集 【不断更新中... ... ... 】 1143
  • GJM:移动App入侵与逆向破解技术-iOS篇 【转载】 976

分类专栏

  • Unity 3篇

最新评论

  • GJM : 【C# 高性能服务器】完成端口、心跳的高性能Socket服务器 [转载]

    匿名用户: haoljp我最近在研究这个 等我研究明白之后 我会整理一个文档发布的

  • GJM : 【C# 高性能服务器】完成端口、心跳的高性能Socket服务器 [转载]

    匿名用户: 能讲下使用和实现最好

  • GJM : 常用网站收集 【不断更新中... ... ... 】

    匿名用户: NNN666

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • 2019 AIproCon 开发者大会 PPT
  • GJM: Unity3d打开对话框
  • GJM:移动App入侵与逆向破解技术-iOS篇 【转载】
2019年2篇
2017年26篇
2016年65篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tdou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家牡丹江玻璃钢雕塑定制端州玻璃钢人物雕塑价格衢州景区玻璃钢雕塑供应商临沧玻璃钢雕塑供应商四川佛像玻璃钢雕塑优势邵阳玻璃钢造型雕塑庆阳玻璃钢卡通雕塑人物玻璃钢雕塑价格行情徐州玻璃钢人像雕塑金华玻璃钢陶瓷雕塑图片湘潭当代玻璃钢雕塑衢州欧式玻璃钢雕塑生产厂家通州玻璃钢雕塑加工玻璃钢雕塑摆件卧室玻璃钢艺术摆件景观雕塑厂家玻璃钢卡通雕塑哪个品牌好上海周年庆典商场美陈多少钱成都玻璃钢雕塑摆件怎么样南宁商场美陈雕塑厂家济宁卡通玻璃钢雕塑厂家钦州玻璃钢人物雕塑价格便宜商场美陈招聘信息高要玻璃钢卡通雕塑景洪市玻璃钢雕塑设计如何洛阳抽象校园玻璃钢景观雕塑佛像玻璃钢人物雕塑定制厂家推荐玻璃钢花盆动物玻璃钢雕塑供货厂家新密附近玻璃钢人物雕塑厂家龙岩玻璃钢雕塑生产香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化