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 相关文章推荐
你的 mixin 真的兼容 ECMAScript 5 吗?
Apr 11 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
Feb 23 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
Mar 02 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
AngularJS自定义指令实现面包屑功能完整实例
May 17 Javascript
JS实现左边列表移到到右边列表功能
Mar 28 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
Jul 16 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
layui 实现表格某一列显示图标
Sep 19 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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
php桥接模式应用案例分析
2019/10/23 PHP
js一组验证函数
2008/12/20 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
小程序实现tab标签页
2020/11/16 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python创建和使用字典实例详解
2013/11/01 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python实现常见的回文字符串算法
2018/11/14 Python
django模板结构优化的方法
2019/02/28 Python
python调用摄像头拍摄数据集
2019/06/01 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Python2与Python3的区别点整理
2019/12/12 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
岗位职责风险点
2014/03/12 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
北京奥运会主题口号
2014/06/13 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
运动会100米加油稿
2015/07/21 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
PyTorch中permute的使用方法
2022/04/26 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android