diff --git a/src/ui-layout.js b/src/ui-layout.js
index 223b591..7346202 100644
--- a/src/ui-layout.js
+++ b/src/ui-layout.js
@@ -19,6 +19,8 @@ angular.module('ui.layout', [])
 
     Layout.addLayout(ctrl);
 
+    ctrl.animate = $attrs.animate;
+
     ctrl.containers = [];
     ctrl.movingSplitbar = null;
     ctrl.bounds = $element[0].getBoundingClientRect();
@@ -680,8 +682,10 @@ angular.module('ui.layout', [])
         if(!element.hasClass('stretch')) element.addClass('stretch');
         if(!element.hasClass('ui-splitbar')) element.addClass('ui-splitbar');
 
-        var animationClass = ctrl.isUsingColumnFlow ? 'animate-column' : 'animate-row';
-        element.addClass(animationClass);
+        if (ctrl.animate !== 'false') {
+          var animationClass = ctrl.isUsingColumnFlow ? 'animate-column' : 'animate-row';
+          element.addClass(animationClass);
+        }
 
         scope.splitbar = LayoutContainer.Splitbar();
         scope.splitbar.element = element;
@@ -920,8 +924,10 @@ angular.module('ui.layout', [])
                 if(!element.hasClass('stretch')) element.addClass('stretch');
                 if(!element.hasClass('ui-layout-container')) element.addClass('ui-layout-container');
 
-                var animationClass = ctrl.isUsingColumnFlow ? 'animate-column' : 'animate-row';
-                element.addClass(animationClass);
+                if (ctrl.animate !== 'false') {
+                  var animationClass = ctrl.isUsingColumnFlow ? 'animate-column' : 'animate-row';
+                  element.addClass(animationClass);
+                }
 
                 scope.$watch('collapsed', function (val, old) {
                   if (angular.isDefined(old) && val !== old) {
diff --git a/test/uiLayoutContainer.spec.js b/test/uiLayoutContainer.spec.js
index ade2406..f0125e3 100644
--- a/test/uiLayoutContainer.spec.js
+++ b/test/uiLayoutContainer.spec.js
@@ -3,17 +3,19 @@
 
 describe('Directive: uiLayoutContainer', function () {
   var scope, element, $compile,
-    template = '' +
-    '<div ui-layout="{flow: \'column\'}" ui-layout-loaded>' +
-    '  <div ui-layout-container collapsed="layout.beforeContainer" size="100px" min-size="50px"  max-size="200px" resizable="false">One</div>' +
-    '  <div ui-layout-container data-collapsed="layout.afterContainer">Two</div>' +
-    '</div>';
+    template = function(params) {
+      return '' +
+      '<div ui-layout="{flow: \'column\'}" ui-layout-loaded ' + (params.animate || '') + '>' +
+      '  <div ui-layout-container collapsed="layout.beforeContainer" size="100px" min-size="50px"  max-size="200px" resizable="false">One</div>' +
+      '  <div ui-layout-container data-collapsed="layout.afterContainer">Two</div>' +
+      '</div>';
+    };
 
   function createDirective(layout) {
     var elm;
 
     scope.layout = layout;
-    elm = angular.element(template);
+    elm = angular.element(template(layout));
     angular.element(document.body).prepend(elm);
     $compile(elm)(scope);
     scope.$digest();
@@ -38,7 +40,7 @@ describe('Directive: uiLayoutContainer', function () {
 
   it('should get initial attribute values', function () {
     // this tests values _after_ the layout has been calculated
-    element = createDirective({ beforeContainer: true, afterContainer: false});
+    element = createDirective({ beforeContainer: true, afterContainer: false });
     var divs = element.find('div'),
       beforeContainer = divs[0],
       afterContainer = divs[2],
@@ -61,4 +63,32 @@ describe('Directive: uiLayoutContainer', function () {
 
   });
 
+  it('should be animated when the attribute is explicitly set', function() {
+    element = createDirective({ beforeContainer: true, afterContainer: false, animate: 'animate="true"'});
+    var divs = element.find('div'),
+      beforeContainer = divs[0],
+      afterContainer = divs[2];
+
+    expect(angular.element(beforeContainer).hasClass('animate-column')).toEqual(true);
+    expect(angular.element(afterContainer).hasClass('animate-column')).toEqual(true);
+  });
+
+  it('should be animated when the attribute is not set', function() {
+    element = createDirective({ beforeContainer: true, afterContainer: false});
+    var divs = element.find('div'),
+      beforeContainer = divs[0],
+      afterContainer = divs[2];
+    expect(angular.element(beforeContainer).hasClass('animate-column')).toEqual(true);
+    expect(angular.element(afterContainer).hasClass('animate-column')).toEqual(true);
+  });
+
+  it('should not be animated when the attribute is set to false', function() {
+    element = createDirective({ beforeContainer: true, afterContainer: false, animate: 'animate="false"'});
+    var divs = element.find('div'),
+      beforeContainer = divs[0],
+      afterContainer = divs[2];
+    expect(angular.element(beforeContainer).hasClass('animate-column')).toEqual(false);
+    expect(angular.element(afterContainer).hasClass('animate-column')).toEqual(false);
+  });
+
 });
\ No newline at end of file