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 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
一段批量给页面上的控件赋值js
Jun 19 Javascript
解决jquery的.animate()函数在IE6下的问题
Dec 03 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
js调试系列 初识控制台
Jun 18 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
May 24 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
手写Vue源码之数据劫持示例详解
Jan 04 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使用正则表达式获取字符串中的URL
2016/12/29 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
javascript demo 基本技巧
2009/12/18 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python爬虫基本知识
2018/03/05 Python
python线程池threadpool实现篇
2018/04/27 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
详解python中的线程与线程池
2019/05/10 Python
Python输出指定字符串的方法
2020/02/06 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
思想汇报范文
2013/11/04 职场文书
美德好少年主要事迹
2014/01/29 职场文书
军训 自我鉴定
2014/02/03 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
法学专业求职信范文
2015/03/19 职场文书
感谢师恩主题班会
2015/08/17 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android