Функция JQuery Blind - 30 пикселей - PullRequest
0 голосов
/ 02 октября 2009

У меня есть слепая функция, которая понижает и поднимает div. Это прекрасно работает, но я хочу сделать так, чтобы div уменьшился до 30px и полностью открылся. Как бы я это сделал?

// * JQuery * //

    jQuery.fn.blindToggle = function(speed, easing, callback) {
      var h = this.height() + parseInt(this.css('paddingTop')) + parseInt(this.css('paddingBottom'));
      return this.animate({marginTop: parseInt(this.css('marginTop')) >0 ? 0 : +h }, speed, easing, callback);  
    };

$(document).ready(function() {
  var $box = $('#box')
    .wrap('<div id="box-outer"></div>');
  $('#blind').click(function() {
    $box.blindToggle('slow');
  });    
});

// * CSS * //

#box {
     padding: 10px;
     height: 100px;
     width: 100px;
     background: #e459e9;
     }
#box-outer {
     overflow: hidden;
     height: 120px;
     margin: 20px;
     }

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2009

Вот почему бы не дать этому шанс.

jQuery.fn.blindToggle = function(newHeight, speed, easing, callback) {
    return this.each(function(){with( jQuery(this) ){
        height() != newHeight ?
            data("wasHeight", height()).css("overflow","hidden").animate({height: newHeight}, speed, easing, callback)
        :
            css("overflow","").animate({height: data("wasHeight")}, speed, easing, callback).removeData("wasHeight")
    }})
};

$(function() {
  $('#blind').click(function() {
    $(this).blindToggle(30, "slow");
  });    
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...