-
-
Save jstott/6326038 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define(['durandal/system', './transitionHelper'], function(system, helper) { | |
var settings = { | |
inAnimation: 'fadeInLeftBig', | |
outAnimation: 'fadeOutRight' | |
}, | |
fadeIn = function(context) { | |
system.extend(context, settings); | |
return helper.create(context); | |
}; | |
return fadeIn; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define(['durandal/system', 'jquery'], function (system, $) { | |
var animationTypes = [ | |
'bounce', | |
'bounceIn', | |
'bounceInDown', | |
'bounceInLeft', | |
'bounceInRight', | |
'bounceInUp', | |
'bounceOut', | |
'bounceOutDown', | |
'bounceOutLeft', | |
'bounceOutRight', | |
'bounceOutUp', | |
'fadeIn', | |
'fadeInDown', | |
'fadeInDownBig', | |
'fadeInLeft', | |
'fadeInLeftBig', | |
'fadeInRight', | |
'fadeInRightBig', | |
'fadeInUp', | |
'fadeInUpBig', | |
'fadeOut', | |
'fadeOutDown', | |
'fadeOutDownBig', | |
'fadeOutLeft', | |
'fadeOutLeftBig', | |
'fadeOutRight', | |
'fadeOutRightBig', | |
'fadeOutUp', | |
'fadeOutUpBig', | |
'flash', | |
'flip', | |
'flipInX', | |
'flipInY', | |
'flipOutX', | |
'flipOutY', | |
'hinge', | |
'lightSpeedIn', | |
'lightSpeedOut', | |
'pulse', | |
'rollIn', | |
'rollOut', | |
'rotateIn', | |
'rotateInDownLeft', | |
'rotateInDownRight', | |
'rotateInUpLeft', | |
'rotateInUpRight', | |
'rotateOut', | |
'rotateOutDownLeft', | |
'rotateOutDownRight', | |
'rotateOutUpLeft', | |
'roateOutUpRight', | |
'shake', | |
'swing', | |
'tada', | |
'wiggle', | |
'wobble' | |
]; | |
return App = { | |
duration: 1000 * .35, // seconds | |
create: function (settings) { | |
settings = ensureSettings(settings); | |
return doTrans(settings); | |
} | |
}; | |
function animValue(type) { | |
return Object.prototype.toString.call(type) == '[object String]' ? type : animationTypes[type]; | |
} | |
function ensureSettings(settings) { | |
settings.inAnimation = settings.inAnimation || 'fadeInRight'; | |
settings.outAnimation = settings.outAnimation || 'fadeOut'; | |
return settings; | |
} | |
function doTrans(settings) { | |
var activeView = settings.activeView, | |
newChild = settings.child, | |
outAn = animValue(settings.outAnimation), | |
inAn = animValue(settings.inAnimation), | |
$previousView, | |
$newView = $(newChild).removeClass([outAn, inAn]).addClass('animated'); | |
return system.defer(function (dfd) { | |
if (newChild) { | |
startTransition(); | |
} else { | |
endTransistion(); | |
} | |
function startTransition() { | |
if (settings.activeView) { | |
outTransition(inTransition); | |
} else { | |
inTransition(); | |
} | |
} | |
function outTransition(callback) { | |
$previousView = $(activeView); | |
$previousView.addClass('animated'); | |
$previousView.addClass(outAn); | |
setTimeout(function () { | |
if (callback) { | |
callback(); | |
endTransistion(); | |
} | |
}, App.duration); | |
} | |
function inTransition() { | |
settings.triggerAttach(); | |
$newView.css('display', ''); | |
$newView.addClass(inAn); | |
setTimeout(function () { | |
$newView.removeClass(inAn + ' ' + outAn + ' animated'); | |
endTransistion(); | |
}, App.duration); | |
} | |
function endTransistion() { | |
dfd.resolve(); | |
} | |
}).promise(); | |
} | |
}); |
@jiggle - Thanks for this, works great! Thanks all for the samples here.
How do I apply a transition to a particular element rather than the whole document ?
This is great thanks!!!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I still couldn't get it to work either LayzeeDK with cacheViews:true, but I think I have figured it out now: (version 2.0.1), animate taken from http://daneden.me/animate today, and animation settings in animate.css changed to:
Thanks very much for the transition helper evanlarsen and jstott, it's great!!