123456789101112131415161718192021222324252627282930313233343536373839404142 |
- angular.module('app')
- .directive('uiShift', ['$timeout', function($timeout) {
- return {
- restrict: 'A',
- link: function(scope, el, attr) {
- // get the $prev or $parent of this el
- var _el = $(el),
- _window = $(window),
- prev = _el.prev(),
- parent,
- width = _window.width()
- ;
- !prev.length && (parent = _el.parent());
-
- function sm(){
- $timeout(function () {
- var method = attr.uiShift;
- var target = attr.target;
- _el.hasClass('in') || _el[method](target).addClass('in');
- });
- }
-
- function md(){
- parent && parent['prepend'](el);
- !parent && _el['insertAfter'](prev);
- _el.removeClass('in');
- }
- (width < 768 && sm()) || md();
- _window.resize(function() {
- if(width !== _window.width()){
- $timeout(function(){
- (_window.width() < 768 && sm()) || md();
- width = _window.width();
- });
- }
- });
- }
- };
- }]);
|