Показать сообщение отдельно
  #8 (permalink)  
Старый 16.03.2017, 13:50
Аватар для Stay_Strong
Аспирант
Отправить личное сообщение для Stay_Strong Посмотреть профиль Найти все сообщения от Stay_Strong
 
Регистрация: 14.10.2015
Сообщений: 37

ksa,
Я думаю, что вы напрасно смеетесь. Потому что многие учатся таким способом. У меня пока что вот что получается
window.onload = function() {

  function loadElements() {
    //Основные параметры
    var element = '.filter__item', //элементы к которым будет применен метод
        childrenElements = '.filter__option', //дочерние элементы, больше числа которых появляется кнопка раскрытия
        count = 3, //число, после которого появится раскрытие
        speed = 250, //скорость раскрытия блока по нажатию на кнопку показа
        textMore = '+ Показать все', //Текст для кнопки "Показать все"
        textLess = '- Скрыть'; //Текст для кнопки "Cкрыть"

    //Переменные, используемые в плагине
    var elList = document.querySelectorAll(element); //находим все элементы на странице, к которым нужно применить метод

    Array.prototype.forEach.call(elList, function(el, i) { //Обходим в цикле все элементы
        var countChildren = elList[i].querySelectorAll(childrenElements);
        if(countChildren.length > count) {
          //Создаем контейнер, куда будем перемещать все элементы, которые нужно скрыть.
          var container = document.createElement('div');
          container.className = 'loadContainer';
          //Присваиваем контейнер в наш элемент
          elList[i].appendChild(container);
          //Выбираем все элементы, которые будем скрывать
          for(var j = 0; j < countChildren.length; j++) {
            if(j > count - 1) {
              container.appendChild(countChildren[j]);
            }
          }
        }
    });

  }

  loadElements();

}
Ответить с цитированием