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 相关文章推荐
jquery1.4.2 for Visual studio 2010 模板文件
Jul 14 Javascript
js Math 对象的方法
Sep 01 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
JS操作JSON方法总结(推荐)
Jun 14 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 Javascript
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
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
PHP如何实现跨域
2016/05/30 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
js实现移动端轮播图
2020/12/21 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
大学军训感想
2014/02/12 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
有关西游记的读书笔记
2015/06/25 职场文书