diff --git a/README.md b/README.md
index 2b90521..d1fbd83 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,11 @@ Main attribute, required for directive to work, passed variable defines whether
Time in seconds for animation to complete (default is 1 second).
<div ng-slide-down="slideDown" duration="1.5">
+
+#### timing-function
+Easing function (`transition-timing-function`) to use in the animation (default is ease-in-out).
+
+<div ng-slide-down="slideDown" timing-function="linear">
#### lazy-render
Add this attribute to prevent rendering when content is hidden. Doesn't require value.
diff --git a/demo/ng-slide-down.js b/demo/ng-slide-down.js
index 0b4066a..c58710f 100644
--- a/demo/ng-slide-down.js
+++ b/demo/ng-slide-down.js
@@ -12,8 +12,9 @@
}
};
link = function (scope, element, attrs, ctrl, transclude) {
- var closePromise, duration, elementScope, emitOnClose, getHeight, hide, lazyRender, onClose, openPromise, show;
+ var closePromise, duration, elementScope, emitOnClose, getHeight, hide, lazyRender, onClose, openPromise, show, timingFunction;
duration = attrs.duration || 1;
+ timingFunction = attrs.timingFunction || 'ease-in-out';
elementScope = element.scope();
emitOnClose = attrs.emitOnClose;
onClose = attrs.onClose;
@@ -45,7 +46,7 @@
overflow: 'hidden',
transitionProperty: 'height',
transitionDuration: '' + duration + 's',
- transitionTimingFunction: 'ease-in-out',
+ transitionTimingFunction: timingFunction,
height: getHeight()
});
return openPromise = $timeout(function () {
@@ -65,7 +66,7 @@
overflow: 'hidden',
transitionProperty: 'height',
transitionDuration: '' + duration + 's',
- transitionTimingFunction: 'ease-in-out',
+ transitionTimingFunction: timingFunction,
height: '0px'
});
if (emitOnClose || onClose || lazyRender) {
diff --git a/dist/ng-slide-down.js b/dist/ng-slide-down.js
index 0b4066a..c58710f 100644
--- a/dist/ng-slide-down.js
+++ b/dist/ng-slide-down.js
@@ -12,8 +12,9 @@
}
};
link = function (scope, element, attrs, ctrl, transclude) {
- var closePromise, duration, elementScope, emitOnClose, getHeight, hide, lazyRender, onClose, openPromise, show;
+ var closePromise, duration, elementScope, emitOnClose, getHeight, hide, lazyRender, onClose, openPromise, show, timingFunction;
duration = attrs.duration || 1;
+ timingFunction = attrs.timingFunction || 'ease-in-out';
elementScope = element.scope();
emitOnClose = attrs.emitOnClose;
onClose = attrs.onClose;
@@ -45,7 +46,7 @@
overflow: 'hidden',
transitionProperty: 'height',
transitionDuration: '' + duration + 's',
- transitionTimingFunction: 'ease-in-out',
+ transitionTimingFunction: timingFunction,
height: getHeight()
});
return openPromise = $timeout(function () {
@@ -65,7 +66,7 @@
overflow: 'hidden',
transitionProperty: 'height',
transitionDuration: '' + duration + 's',
- transitionTimingFunction: 'ease-in-out',
+ transitionTimingFunction: timingFunction,
height: '0px'
});
if (emitOnClose || onClose || lazyRender) {
diff --git a/dist/ng-slide-down.min.js b/dist/ng-slide-down.min.js
index 50a776a..e1c76d3 100644
--- a/dist/ng-slide-down.min.js
+++ b/dist/ng-slide-down.min.js
@@ -1,2 +1,2 @@
-/*! ng-slide-down 23-04-2015 */
-(function(){"use strict";angular.module("ng-slide-down",[]).directive("ngSlideDown",["$timeout",function(a){var b,c;return b=function(a,b){return void 0!==b.lazyRender?"