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的横向滚动条(滑动条)
Feb 24 Javascript
javascript之典型高阶函数应用介绍
Jan 10 Javascript
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
很棒的vue弹窗组件
May 24 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 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
实用函数10
2007/11/08 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
window.location.hash 属性使用说明
2010/03/20 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
Vue异步加载about组件
2017/10/31 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
python读取图片并修改格式与大小的方法
2018/07/24 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
物理教学随笔感言
2014/02/22 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
珍惜资源的建议书
2014/08/26 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏