js实现超酷的照片墙展示效果图附源码下载


Posted in Javascript onOctober 08, 2015

这是一个超酷的照片墙展示效果,很多照片结合淡入淡出、旋转、缩放、倾斜及3D效果,照片快速从左侧切入,做旋转3D效果,最后在照片墙上整齐排列,为用户展示了超酷的照片墙展示效果。

js实现超酷的照片墙展示效果图附源码下载

查看演示 下载源码

HTML

本文结合实例给大家分享超酷的照片墙效果,该效果依赖jQuery和easing插件,因此首先载入这两个文件。

<script src="jquery.min.js"></script> 
<script src="jquery.easing.1.3.js"></script>

接着,我们在需要展示照片墙的位置放置如下代码:

<div class="grid"></div> 
<div class="animate">点击看效果</div>

CSS

CSS定义了照片墙基本样式,照片排列以及按钮样式。

.grid { 
  width: 600px; height: 300px; margin: 100px auto 50px auto; 
  perspective: 500px; /*For 3d*/ 
} 
.grid img {width: 60px; height: 60px; display: block; float: left;} 
 
.animate { 
  text-transform: uppercase; 
  background: rgb(0, 100, 0); color: white; 
  padding: 10px 20px; border-radius: 5px; 
  cursor: pointer;margin:10px auto;width:100px;text-align:center; 
} 
.animate:hover {background: rgb(0, 75, 0);}

JS

首先我们在页面上动态载入50张照片,照片源来自网络。

var images = "", count = 50; 
for(var i = 1; i <= count; i++) 
  images += '<img src="http://thecodeplayer.com/u/uifaces/'+i+'.jpg" />'; 
   $(".grid").append(images);

当点击按钮时,50张图片做不同程度的变形缩放转换淡出效果,因为要切入下一个照片墙了,当这些动作全部完成时,开始切入照片墙动画效果,调用了storm()函数。

var d = 0; //延时 
var ry, tz, s; //定义转换参数 
$(".animate").on("click", function(){ 
  $("img").each(function(){ 
    d = Math.random()*1000; //1ms to 1000ms delay 
    $(this).delay(d).animate({opacity: 0}, { 
      step: function(n){ 
        s = 1-n; //scale - will animate from 0 to 1 
        $(this).css("transform", "scale("+s+")"); 
      }, 
      duration: 1000 
    }) 
  }).promise().done(function(){ 
    storm(); //淡出效果全部完成时调用 
  }) 
})

自定义函数storm()完成了将每张照片进行角度旋转和Z轴位移动作,结合CSS3使得产生3D效果,然后调用easing实现缓冲效果,让整个照片墙切入十分流畅,请看代码:

function storm(){ 
  $("img").each(function(){ 
    d = Math.random()*1000; 
    $(this).delay(d).animate({opacity: 1}, { 
      step: function(n){ 
        //rotating the images on the Y axis from 360deg to 0deg 
        ry = (1-n)*360; 
        //translating the images from 1000px to 0px 
        tz = (1-n)*1000; 
        //applying the transformation 
        $(this).css("transform", "rotateY("+ry+"deg) translateZ("+tz+"px)"); 
      }, 
      duration: 3000, 
      easing: 'easeOutQuint' 
    }) 
  }) 
}
Javascript 相关文章推荐
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
js实现iframe跨页面调用函数的方法
Dec 13 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
May 14 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
基于vue实现圆形菜单栏组件
Jul 05 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
js实现九宫格抽奖
Mar 19 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
详解vue-router的导航钩子(导航守卫)
Nov 02 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
Oct 08 #Javascript
Javascript控制div属性动态变化实例分析
Oct 08 #Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 #Javascript
分享五个有用的jquery小技巧
Oct 08 #Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 #Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 #Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 #Javascript
You might like
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
基于Python的接口测试框架实例
2016/11/04 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python 识别图片中的文字信息方法
2018/05/10 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
超市后勤自我鉴定
2014/01/17 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
公司开业庆典主持词
2014/03/21 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
股东授权委托书
2014/10/15 职场文书
追悼词范文大全
2015/06/23 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
mysql 获取时间方式
2022/03/20 MySQL