1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| (function() {
var support = { transitions: Modernizr.csstransitions },
// transition end event name
transEndEventNames = { 'WebkitTransition': 'webkitTransitionEnd', 'MozTransition': 'transitionend', 'OTransition': 'oTransitionEnd', 'msTransition': 'MSTransitionEnd', 'transition': 'transitionend' },
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
onEndTransition = function( el, callback ) {
var onEndCallbackFn = function( ev ) {
if( support.transitions ) {
if( ev.target != this ) return;
this.removeEventListener( transEndEventName, onEndCallbackFn );
}
if( callback && typeof callback === 'function' ) { callback.call(this); }
};
if( support.transitions ) {
el.addEventListener( transEndEventName, onEndCallbackFn );
}
else {
onEndCallbackFn();
}
};
new GridFx(document.querySelector('.grid'), {
imgPosition : {
x : -0.5,
y : 1,
},
onOpenItem : function(instance, item) {
instance.items.forEach(function(el) {
if(item != el) {
var delay = Math.floor(Math.random() * 50);
el.style.WebkitTransition = 'opacity .5s ' + delay + 'ms cubic-bezier(.7,0,.3,1), -webkit-transform .5s ' + delay + 'ms cubic-bezier(.7,0,.3,1)';
el.style.transition = 'opacity .5s ' + delay + 'ms cubic-bezier(.7,0,.3,1), transform .5s ' + delay + 'ms cubic-bezier(.7,0,.3,1)';
el.style.WebkitTransform = 'scale3d(0.1,0.1,1)';
el.style.transform = 'scale3d(0.1,0.1,1)';
el.style.opacity = 0;
}
});
},
onCloseItem : function(instance, item) {
instance.items.forEach(function(el) {
if(item != el) {
el.style.WebkitTransition = 'opacity .4s, -webkit-transform .4s';
el.style.transition = 'opacity .4s, transform .4s';
el.style.WebkitTransform = 'scale3d(1,1,1)';
el.style.transform = 'scale3d(1,1,1)';
el.style.opacity = 1;
onEndTransition(el, function() {
el.style.transition = 'none';
el.style.WebkitTransform = 'none';
});
}
});
}
});
})(); |
Partager