html5立体照片墙效果,jQuery超酷3D网格照片墙动画特效 -HTML5功能

作为网格容器,和一个按钮来触发动画效果。

Animate

CSS样式

在网格容器上设置了固定的宽度和高度,为了制作3D效果,还设置了perspective: 500px;。每一张图片也设置了固定的宽度和高度,并且均为左浮动。

* {margin: 0; padding: 0;}

body {text-align: center; /*overflow: hidden;*/}

.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 {

font: 12px Montserrat; text-transform: uppercase;

background: rgb(0, 100, 0); color: white;

padding: 10px 20px; border-radius: 5px;

cursor: pointer;

}

.animate:hover {background: rgb(0, 75, 0);}

JavaScript

网格中的图片是在js代码中动态添加的。.animate按钮上添加了click事件监听,在按钮被点击的时候,网格中的每一张图片都使用jQuery.delay()函数来设置一个随机的延迟值,并使用animate()动画来使图片的透明度降低为0。接着在所有图片都消失之后,promise()方法返回一个Promise对象,用来观察当某种类型的所有行动绑定到集合,排队与否还是已经完成。最后在done()方法中执行缩略图的3D旋转动画,类似龙卷风的效果。

var images = "", count = 50;

for(var i = 1; i <= count; i++)

images += '

b6d8a0407908e0fda5a788ace2e3a3f020151012012532.jpg';

//图片添加到网格中

$(".grid").append(images);

var d = 0; //延迟

var ry, tz, s; //转换参数

//animation time

$(".animate").on("click", function(){

//fading out the thumbnails with style

$("img.grid-image").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(){

//after *promising* and *doing* the fadeout animation we will bring the images back

storm();

})

})

//bringing back the images with style

function storm()

{

$("img.grid-image").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',

})

})

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值