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 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
文本框只能选择数据到文本框禁止手动输入
Nov 22 Javascript
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
整理关于Bootstrap排版的慕课笔记
Mar 29 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
微信小程序实现倒计时60s获取验证码
Apr 17 Javascript
浅析Vue中method与computed的区别
Mar 06 Javascript
vue地区选择组件教程详解
May 04 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
Jan 30 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 Javascript
浅谈js数组splice删除某个元素爬坑
Oct 14 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
初学CAKEPHP 基础教程
2009/11/02 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
用 JSON 处理缓存
2007/04/27 Javascript
告诉大家什么是JSON
2008/06/10 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python实现AES加密和解密
2019/03/27 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
财务会计专业应届毕业生求职信
2013/10/18 职场文书
高三家长寄语
2014/04/03 职场文书
公司授权委托书样本
2014/09/15 职场文书
基层党员对照检查材料
2014/09/24 职场文书
小学运动会开幕词
2015/01/28 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
MySQL数据库完全卸载的方法
2022/03/03 MySQL