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里的dialog对话框插件为框架页(iframe) 的方法
Sep 14 Javascript
jquery获得下拉框值的代码
Aug 13 Javascript
json对象转字符串如何实现
Dec 02 Javascript
node.js中的fs.write方法使用说明
Dec 15 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
JSON简介以及用法汇总
Feb 21 Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 Javascript
Bootstrap 填充Json数据的实例代码
Jan 11 Javascript
微信小程序登陆注册功能的实现代码
Dec 10 Javascript
javascript实现电商放大镜效果
Nov 23 Javascript
JS Canvas接口和动画效果大全
Apr 29 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
php 动态添加记录
2009/03/10 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
JS 自动安装exe程序
2008/11/30 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
Python3.6简单操作Mysql数据库
2017/09/12 Python
python查看列的唯一值方法
2018/07/17 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
平面设计师工作职责范文
2013/12/03 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
班主任寄语2015
2015/02/26 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
mysql全面解析json/数组
2022/07/07 MySQL