ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

КАК Сделать

Главная

Меню

Панель значков Значок меню Аккордеон Вкладки Вертикальные вкладки Заголовки вкладок Вкладки полной страницы Вверх Навигация Отзывчивый Topnav Панель поиска Исправлена ​​боковая панель Боковая навигация Полноэкранная навигация Меню Off-Canvas Наведение с помощью кнопок Меню горизонтальной прокрутки Вертикальное меню Нижняя навигация Отзывчивый снимок Nav Ссылки на нижнюю границу Ссылки справа Центрированные ссылки меню Исправлено меню Слайд-шоу в прокрутке Скрыть Navbar в прокрутке Прикрепленное Navbar Выпадающие окна Hover Нажмите «Раскрывающиеся окна» Раскрытие в Топнаве Распространение в Сидене Откроется панель Navbar Dropup Mega Menu пагинация Панировочные сухари Группа кнопок Группа вертикальных кнопок Важная социальная панель Отзывчивый заголовок

Изображения

Слайд-шоу Галерея слайд-шоу Модальные изображения Лайтбокс Адаптивная Сетка изображения Сетка изображения Галерея вкладок Оверлей изображения Слайд с наложенным изображением Масштабирование наложения изображения Название наложения изображения Значок наложения изображения Эффекты изображения Черно-белое изображение Текст изображения Текстовые блоки изображений Прозрачный текст изображения Полное изображение страницы Форма на картинке Герой изображение Параллельные изображения Округленные изображения Аватар изображения Адаптивные образы Центрировать изображения Миниатюры Познакомьтесь с командой Липкое изображение Отражение изображения Встряхните изображение Портфолио галерея Портфолио с фильтрацией Масштабирование изображения Изображение увеличительное стекло Ползунок сравнения изображений

Кнопки

Кнопки оповещения Кнопки структуры Кнопки разделения Анимированные кнопки Кнопки затухания Кнопка на картинке Кнопки социальных сетей Кнопки загрузки Кнопки загрузки Значки Кнопки «Далее»/«предыдущий» Кнопки блокировки Текстовые кнопки Круглые пуговицы Прокрутка к верхней кнопке

Формы

Форма входа Форма регистрации Бланк заказа Контактная форма Форма для входа в социальную систему Форма регистрации Форма с иконками Бюллетень Адаптивная форма Очистить поле ввода Копировать текст в буфер обмена Анимированный Поиск Кнопка поиска Полноэкранный Поиск Настраиваемый флажок/Радио Выборочный выбор Тумблер Установите флажок Проверка пароля Переключение видимости паролей Форма с несколькими шагами Автозаполнения

Фильтры

Список фильтров Таблица фильтров Фильтрующие элементы Фильтр раскрывающегося списка Сортировать список Сортировка таблицы

Таблицы

Зебра полосатые таблицы Адаптивные таблицы Сравнительная таблица

Больше

Fullscreen Video Модальные коробки Шкала Индикатор прокрутки Строки хода выполнения Панель умений Ползунки диапазона Подсказки Popups Складной Календарь HTML вставка Список Погрузчики Звездв Рейтинг пользователей Эффект наложения Контактные фишки Карты Карточка профиля Оповещения Заметки Метки Круги Купон Отзывчивый текст Фиксированный нижний колонтитул Липкий элемент Одинаковая высота Clearfix Снэк-бар Прокрутка рисунка Липкий заголовок Таблица цен Параллакс Пропорции Переключение типа/не нравится Включить скрытие/отображение Переключение текста Переключение класса Добавить класс Удалить класс Активный класс Увеличить Hover Переход при наведении Стрелки Формы Окно браузера Настраиваемая полоса прокрутки Цвет заполнителя Вертикальная линия Анимация значков Таймер обратного отсчета Машинку Скоро страница Сообщения чата Разделить экран Отзывы Цитаты слайд-шоу Закрываемые элементы списка Типичные точки останова устройства Перетаскивание HTML-элемента Кнопка спуска на входе JS медиа запросы JS анимации Получить элементы IFRAME

Сайт

Создать веб-сайт Создать веб-сайт (BS3) Создать веб-сайт (BS4) Веб-сайт центра Контактная Секция

Сетка

2 расположение колонок 3 Расположение колонок 4 расположение колонок Разворачивание сетки Представление сетки списка Компоновка смешанных столбцов Макет блога

Google

Карты Google Карты Google BW Google перевести Google чарты Google шрифты

Конвертеры

Преобразовать вес Преобразовать температуру Преобразовать длину Конвертировать скорость


Как сделать - галерею портфолио с фильтрацией.


Узнайте, как создать галерею портфолио с фильтрацией.


Мое портфолио

Нажмите на кнопки для фильтрации категории:

Mountains

Mountains

Lorem ipsum dolor..

Lights

Lights

Lorem ipsum dolor..

Nature

Forest

Lorem ipsum dolor..

Car

Retro

Lorem ipsum dolor..

Car

Fast

Lorem ipsum dolor..

Car

Classic

Lorem ipsum dolor..

Car

Girl

Lorem ipsum dolor..

Car

Man

Lorem ipsum dolor..

Car

Woman

Lorem ipsum dolor..


Как создать портфолио сайт

Шаг 1) добавить HTML:

Пример

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')"> Show all</button>
  <button class="btn" onclick="filterSelection('nature')"> Nature</button>
  <button class="btn" onclick="filterSelection('cars')"> Cars</button>
  <button class="btn" onclick="filterSelection('people')"> People</button>
</div>

<!-- Portfolio Gallery Grid -->
<div class="row">
  <div class="column nature">
    <div class="content">
      <img src="/w3images/mountains.jpg" alt="Mountains" style="width:100%">
      <h4>Mountains</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column nature">
    <div class="content">
      <img src="/w3images/lights.jpg" alt="Lights" style="width:100%">
      <h4>Lights</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column nature">
    <div class="content">
      <img src="/w3images/nature.jpg" alt="Nature" style="width:100%">
      <h4>Forest</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>

  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars1.jpg" alt="Car" style="width:100%">
      <h4>Retro</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars2.jpg" alt="Car" style="width:100%">
      <h4>Fast</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars3.jpg" alt="Car" style="width:100%">
      <h4>Classic</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>

  <div class="column people">
    <div class="content">
      <img src="/w3images/people1.jpg" alt="People" style="width:100%">
      <h4>Girl</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column people">
    <div class="content">
      <img src="/w3images/people2.jpg" alt="People" style="width:100%">
      <h4>Man</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column people">
    <div class="content">
      <img src="/w3images/people3.jpg" alt="People" style="width:100%">
      <h4>Woman</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
<!-- END GRID -->
</div>


Шаг 2) добавить CSS:

Пример

* {
    box-sizing: border-box;
}

body {
    background-color: #f1f1f1;
    padding: 20px;
    font-family: Arial;
}

/* Center website */
.main {
    max-width: 1000px;
    margin: auto;
}

h1 {
    font-size: 50px;
    word-break: break-all;
}

.row {
    margin: 8px -16px;
}

/* Add padding BETWEEN each column (if you want) */
.row,
.row > .column {
    padding: 8px;
}

/* Create three equal columns that floats next to each other */
.column {
    float: left;
    width: 33.33%;
    display: none; /* Hide columns by default */
}

/* Clear floats after rows */
.row:after {
    content: "";
    display: table;
    clear: both;
}

/* Content */
.content {
    background-color: white;
    padding: 10px;
}

/* The "show" class is added to the filtered elements */
.show {
    display: block;
}

/* Style the buttons */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}

/* Add a grey background color on mouse-over */
.btn:hover {
  background-color: #ddd;
}

/* Add a dark background color to the active button */
.btn.active {
  background-color: #666;
   color: white;
}

Шаг 3) добавить JavaScript:

Пример

filterSelection("all") // Execute the function and show all columns
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  if (c == "all") c = "";
  // Add the "show" class (display:block) to the filtered elements, and remove the "show" class from the elements that are not selected
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}

// Show filtered elements
function w3AddClass(element, name) {
  var i, arr1, arr2;
  arr1 = element.className.split(" ");
  arr2 = name.split(" ");
  for (i = 0; i < arr2.length; i++) {
    if (arr1.indexOf(arr2[i]) == -1) {
      element.className += " " + arr2[i];
    }
  }
}

// Hide elements that are not selected
function w3RemoveClass(element, name) {
  var i, arr1, arr2;
  arr1 = element.className.split(" ");
  arr2 = name.split(" ");
  for (i = 0; i < arr2.length; i++) {
    while (arr1.indexOf(arr2[i]) > -1) {
      arr1.splice(arr1.indexOf(arr2[i]), 1);
    }
  }
  element.className = arr1.join(" ");
}

// Add active class to the current button (highlight it)
var btnContainer = document.getElementById("myBtnContainer");
var btns = btnContainer.getElementsByClassName("btn");
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function(){
    var current = document.getElementsByClassName("active");
    current[0].className = current[0].className.replace(" active", "");
    this.className += " active";
  });
}

Совет: Также проверить портфолио галерея