jQuery dotdotdot в аккордеонном меню

Поэтому у меня есть набор аккордеонов, которые я использую, чтобы показывать и скрывать дополнительный контент. Я использую janu.animate(), чтобы сделать это (хорошо в этом случае это использует скорость, но по существу то же самое). Закрытая высота показывает несколько строк текста (высота: 95 пикселей), а открытая высота анимируется по высоте: auto, (вроде как, есть небольшая хитрость для получения автоматической высоты). И то же самое наоборот, он оживляет до закрытой высоты.

Моя проблема в том, что я пытаюсь добавить jQuery dotdotdot http://dotdotdot.frebsite.nl/ чтобы закрытые были обрезаны. Конечно, я могу заставить это работать под нагрузкой, то есть закомментированную часть вверху.

Я создал кодовый блок, в котором все уже загружено. Я просто надеялся, что кто-нибудь поможет мне заставить работать часть dotdotdot.

Вот ссылка на кодовый блок тоже: http://codepen.io/anon/pen/pvaroR

jQuery(function($){

  //$('.accordion-content').dotdotdot();

  $('.accordion-title').on('click', function(){
    var content = $(this).next();

    if ($(this).parent().hasClass('open')) {
      content.velocity({ 'height' : 95 });
      $(this).parent().removeClass('open').addClass('closed');
    } else {

      // Sets height to auto quickly
      content.css({ 'height' : 'auto' });

      // Store that value in a variable
      var contentHeight = content.height();

      // Sets height back to "closed" height
      content.css({ 'height' : 95 });

      $(this).parent().removeClass('closed').addClass('open');

      // animates to strored variable height
      content.velocity({ 'height' : contentHeight });

    }
  });
});

1 ответ

Решение

dotdotdot Плагин не позволяет легко вернуть исходный контент в исходную форму. Я использовал комбинацию originalContent событие, а затем повторная инициализация dotdotdot на аккордеонном содержании.

Псевдокод выглядит так:

when title is clicked {
    if content was open {
        call .dotdotdot on content
        animate height down to fit content
    } else content was closed {
        get original content and put it back
        get new height, set back to lower height, animate to regular height
    }
}

Вы можете просмотреть обновленный CodePen здесь: http://codepen.io/anon/pen/XJZaYP

Обновлен CodePen с .dotdotdot() вызывается в velocity обратный вызов: http://codepen.io/anon/pen/myXzwW

Другие вопросы по тегам