2014-02-11 2 views
2

Я хотел бы реализовать свою собственную анимацию скрыть popover. В настоящее время я непосредственно модифицирую bootstrap.js.Как настроить Twitter Bootstrap popover hide animation

$.fn.popover = function (option) { 
      return this.each(function() { 
       var $this = $(this) 
        , data = $this.data('popover') 
        , options = typeof option == 'object' && option 
       if (!data) $this.data('popover', (data = new Popover(this, options))) 

       //original code 
       // if (typeof option == 'string') data[option]() 
       //custom code 
       if (typeof option == 'string') { 
        if (option === 'hide') { 
         //my customize animation here 
        } 
        else { 
         data[option](); 
        } 

       } 

      }) 
     } 

Я хотел бы знать, если есть в любом случае, так что я могу достичь динамической анимации, когда я инициализировать поповер

$('#target').popover({ 
    hide: function() { 
     //my own animation 
    } 
}); 

ответ

8

Хороший вопрос-мозг-тизер! Вы определенно можете это сделать. Посмотрите, как вы можете расширять плагин, не вмешиваясь в исходный код:

$.fn.popover = function (orig) { 
    return function(options) { 
    return this.each(function() { 
     orig.call($(this), options); 
     if (typeof options.hide == 'function') { 
     $(this).data('bs.popover').hide = function() { 
      options.hide.call(this.$tip, this); 
      orig.Constructor.prototype.hide.call(this); 
     }; 
     } 
    }); 
    } 
}($.fn.popover); 

Здесь мы идем! Мы расширили функциональность popover по умолчанию с нашей собственной. Теперь можно использовать его:

$('.three').popover({ 
    placement: 'bottom', 
    hide: function() { 
    $(this).animate({marginTop: -100}, function() { 
     $(this).css({marginTop: ''}); 
    }); 
    } 
}); 

Над popover будет иметь пользовательский эффект анимации, скрываясь.

Конечно, если вы не предоставите опцию hide, у вас будет поведение по умолчанию.

Демо:http://jsfiddle.net/VHDwa/71/

+1

Здравствуйте @dfsq, Можете ли вы предоставить код для анимации, показывая всплывающее окно, я пытался сам, но получил ошибку в консоли «неперехваченным TypeError: Невозможно прочитать свойство„прототип“неопределенных . ". Также в первый раз он не оживился. Ссылка видео: http://youtu.be/DGJ7BPubVgo Спасибо в ожидании. – Dharmraj

+0

Я отправил вам свой фрагмент кода в вашей сети, свяжитесь со мной – Dharmraj

Смежные вопросы