Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Создание галереи изображений с помощью Flickr API - требования и разметка

  1. Требования
  2. Соглашения об именах классов
  3. Разметка
  4. Галерея
  5. Список миниатюр изображений
  6. Стили
  7. Модуль Layout
  8. Вспомогательные классы
  9. Заключение

Без сомнения, API играют очень важную роль сегодня. Веб-сервисы от малого до большого требуют представления своих данных через API, который разработчики могут использовать для создания нового сервиса поверх них. Подумайте о крупных компаниях, таких как Google, Yahoo !, Twitter и Microsoft: все они предлагают API для своих сервисов. Примеры использования данных, предоставляемых этими API, SnapBird инструмент, предлагающий расширенные возможности поиска в Twitter, и JoindIn.js разработанная мной библиотека, которая создает виджеты на основе данных, предоставленных JoindIn ,

В этой статье, состоящей из двух частей, я покажу вам, как использовать API Flickr для разработки простого сервиса, который позволяет пользователю вводить текст в поле поиска и который затем отображает галерею изображений из Flickr, заголовок или описание которых соответствуют этот текст. Это будет отличная возможность как поиграть со сторонним API, так и изучить некоторые приятные приемы.

Исходный код проекта доступен на мой аккаунт GitHub в хранилище имени Flickr галерея демо ,

Требования

Прежде чем писать какой-либо код, важно понять, как будет развиваться сервис. Прежде всего, наш проект будет состоять из одной HTML-страницы, состоящей из трех основных компонентов: заголовка, галереи и списка миниатюр.

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

Галерея будет расположена под заголовком и покажет изображение, выбранное в натуральном размере, вплоть до фиксированной ширины и высоты (мы не хотим, чтобы изображение переполняло наш макет, не так ли?). В галерее также будут отображаться кнопки слева и справа для отображения предыдущего и следующего изображений соответственно.

Наконец, у нас будет список миниатюр фотографий под галереей. Мы не хотим, чтобы список становился слишком длинным, поэтому разбиваем подходящие фотографии на страницы и отображаем до 15 фотографий на каждой странице, отображаемых в три строки. (В этом проекте нажатие на стрелку вправо не приведет к загрузке следующей страницы миниатюр. Однако после прочтения этой серии вы можете обновить код, чтобы запустить это действие, если хотите.)

Вся служба будет разработана с учетом доступности, поэтому мы будем использовать соответствующий атрибут роли там, где это имеет смысл, а также обеспечим возможность навигации по веб-сайту и запуска различных действий с помощью TAB и ENTER. ключи.

Результат наших усилий показан на изображении ниже:

Результат наших усилий показан на изображении ниже:

Соглашения об именах классов

Хотя сам по себе проект не является сложным, я буду использовать Методология БЭМ назвать классы, используемые в дополнение к некоторым помощникам. Некоторые могут подумать, что это излишне, но я думаю, что это хорошая возможность изучить новую методологию, с которой вы, возможно, не знакомы. Имена классов, используемые в целях стилизации, не будут использоваться в качестве хуков JavaScript. Поэтому, если частицу JavaScript нужно извлечь один или несколько элементов, вместо использования существующих имен классов, я добавлю конкретное имя класса к элементам с префиксом js-. Это распространенная техника, используемая многими разработчиками для разделения имен классов и хуков JavaScript. Чтобы подкрепить концепцию, давайте кратко обсудим пример.

Допустим, мы определили элемент галереи как таковой:

<div class = "gallery"> <! - сюда идет другой код -> </ div>

Имя класса галереи используется для стилизации элемента, но последний должен быть извлечен функцией JavaScript для выполнения некоторых действий. Вместо извлечения элемента с использованием имени класса галереи, как показано ниже:

var gallery = document.getElementsByClassName ('gallery') [0];

Я добавлю еще один класс с именем js-gallery:

<div class = "js-gallery gallery"> <! - сюда идет другой код -> </ div>

Затем я извлеку элементы примерно так:

var gallery = document.getElementsByClassName ('js-gallery') [0];

Это гарантирует, что, даже если позднее в проекте имя класса галереи будет переименовано или удалено, код JavaScript все равно будет работать. Если вам не нравится префикс js, я читал, что некоторые разработчики используют префикс do, чтобы выделить тот факт, что элемент используется для выполнения действия. Оба соглашения эквивалентны, и вы можете выбрать тот, который вам нравится больше всего.

Установив цели, составляющие и условности нашего проекта, давайте начнем веселье!

Разметка

Первым шагом в создании нашего сервиса является написание разметки страницы, и мы начнем с заголовка.

HTML-код, необходимый для заголовка, очень прост. Мы обернем оба элемента, описанных в предыдущем разделе - заголовок и форму - в элемент заголовка. Заголовок страницы определяется элементом h1, а форма - элементом формы. Форма состоит из метки, ввода, где пользователь может написать текст для поиска, и кнопки для отправки запроса. Метка привязана к входу с помощью атрибута for.

Форма также будет иметь атрибут role = "search", потому что мы хотим подчеркнуть, что это форма поиска, а типом ввода будет поиск. Наконец, мы добавим класс с именем form-search для стилей и класс js-form-search, который будет использоваться JavaScript для извлечения текста, введенного пользователем.

Полный код заголовка представлен ниже:

<header class = "island"> <h1> Галерея Flickr </ h1> <form class = "js-form-search form-search" action = "/ search" method = "get" role = "search"> <label for = "query"> Search: </ label> <input type = "search" name = "query" id = "query" placeholder = "Search" требуется /> <input type = "submit" value = "Search" / > </ form> </ header>

Давайте теперь обсудим самый важный элемент разметки - галерею.

Галерея

Галерея состоит из трех разных небольших элементов: элемент img, используемый для отображения выбранного изображения в натуральном размере, и стрелки влево и вправо для изменения отображаемого изображения. Обе стрелки будут созданы с использованием элемента кнопки. Это правильный выбор, потому что мы хотим выполнять действие, когда на них нажимают. Визуально кнопки будут выглядеть как стрелки, но это имеет смысл только для зрячего человека. С точки зрения слабовидящего пользователя стрелки совершенно бесполезны. По этой причине мы должны улучшить эти кнопки, указав их роль. Мы сделаем это, добавив текст в качестве содержимого кнопок - текст, который визуально скрыт, но доступен для программы чтения с экрана. Используемая ниже методика взята из HTML5 Boilerplate проект и использует класс с именем визуально скрытый.

Полный HTML-код галереи выглядит следующим образом:

<div class = "island"> <div class = "js-gallery gallery"> <img src = "" class = "js-gallery__image" /> <button class = "js-gallery__arrow - слева галерея__arrow gallery__arrow - слева "> <span class =" визуально-скрытый "> Предыдущее фото </ span> </ button> <button class =" js-gallery__arrow - справа gallery__arrow gallery__arrow - справа "> <span class =" визуально-скрытый "> Следующее фото </ span> </ button> </ div> </ div>

Прежде чем мы закончим с разметкой, нужно обсудить последний компонент - список миниатюр.

Список миниатюр изображений

Последний компонент состоит из двух очень простых подкомпонентов: списка миниатюрных изображений текущей страницы и пейджера. Оба определены как список, но первый - это неупорядоченный список, а второй - упорядоченный список. Оба этих списка должны быть сгенерированы на лету с помощью JavaScript, поэтому мы добавим к ним имя класса с префиксом js.

Код этого последнего компонента представлен ниже:

<div class = "island thumbnails"> <ul class = "js-thumbnails__list thumbnails__list"> </ ul> <ol class = "js-thumbnails__pager thumbnails__pager"> </ ol> </ div>

С этим последним фрагментом мы завершили обсуждение разметки страницы, так что пришло время придать ей некоторый стиль.

Стили

Визуальные стили проекта будут организованы в небольшие модули, каждый из которых будет посвящен определенному аспекту. В качестве базы мы будем использовать normalize.css хорошо известная таблица стилей, которая позволяет браузерам отображать все элементы более согласованно и в соответствии с современными стандартами. Он точно нацелен только на стили, которые нужно нормализовать. Затем у нас будет модуль для вспомогательных классов, модуль для галереи, модуль для миниатюр и так далее.

В этом разделе мы обсудим каждый модуль, используемый в проекте, кроме normalize.css.

Модуль Layout

Этот модуль группирует стили элементов по умолчанию, что означает, как элементы должны выглядеть без какого-либо определенного класса. Например, здесь мы определим цвет по умолчанию для элементов a и тела. Единственным исключением является класс острова, который вы видели в разметке и который я использовал для создания изолированных блоков . Этот класс вдохновлен статьей «Островной» объект от Гарри Робертс Так что, если вы хотите узнать больше об этом, я предлагаю вам прочитать цитируемую статью.

Единственный блок объявлений, о котором стоит упомянуть в этом модуле:

*, *: до, *: после {-moz-box-sizing: border-box; размер коробки: бордюр; }

Он определяет, что все элементы страницы должны использовать значение модели рамки рамки CSS. Если вы хотите узнать больше об этой теме, я предлагаю вам прочитать статьи * {Размер коробки: Граница} FTW от Пол Ирландский а также Размер коробки от Крис Койер ,

Полный код файла layout.css показан ниже:

*, *: до, *: после {-moz-box-sizing: border-box; размер коробки: бордюр; } .island {display: block; максимальная ширина: 1024 пикселей; поле: 0 авто; } body {background-color: # 060C10; цвет: #FFFFFF; семейство шрифтов: Arial, Calibri, Helvetica, без засечек; } h1 {display: block; цвет: # FCB720; } a {color: #FFFFFF; }

Вспомогательные классы

Это, пожалуй, самый простой модуль службы и определяет три хорошо известных вспомогательных класса, к которым большинство из вас, если не все, хорошо привыкли. Классы: визуально-скрытые, скрытые и понятные.

Первый, визуально скрытый, используется для визуального скрытия элемента. Это означает, что элемент не отображается на странице, но по-прежнему доступен для программы чтения с экрана, что очень важно для специальных возможностей. hidden - это класс с одним объявлением, который используется для скрытия элемента как визуально, так и для программ чтения с экрана. Последний класс, clearfix, используется для хранения чисел с плавающей запятой без обращения к разметке представления. Если вы хотите узнать больше об этой теме, вы можете взглянуть на статью Новый взлом микро-исправлений от Николас Галлахер ,

Полный код этого модуля показан ниже:

.visually-hidden {border: 0; клип: прямоугольник (0 0 0 0); высота: 1 пикс; поле: -1px; переполнение: скрытое; отступы: 0; положение: абсолютное; ширина: 1px; } .hidden {display: none! важный; } .clearfix: before, .clearfix: after {content: ""; дисплей: стол; } .clearfix: после {clear: оба; }

Заключение

В этой первой части статьи мы обсудили детали службы, которую мы создаем, и то, что вы узнаете, прочитав этот мини-сериал. Затем мы рассмотрели соглашения, которые я использую при создании проекта, чтобы вы знали, почему имена классов определены определенным образом.

Определив цель и компоненты сервиса, мы затем обсудили всю разметку, которая составляет сервис, который мы разрабатываем, выделив некоторые варианты, например, почему я выбрал элементы кнопок для стрелок галереи. Наконец, в последней части этой статьи мы начали исследовать некоторые CSS-модули для проекта.

В вторая и последняя часть этой серии вы увидите оставшиеся модули CSS, а также узнаете о коде JavaScript, который обеспечивает сервис.

Похожие

Каковы лучшие плагины галереи WordPress?
... изображений. В WordPress добавлено множество прекрасных плагинов для галереи, которые сделают вашу работу еще проще. Чтобы помочь вам разобраться с многочисленными вариантами, доступными в настоящее время, вот список самых популярных плагинов галереи, используемых на сегодняшний день. Галерея Энвира
Самые популярные стили мебели - краткое руководство
Мебель, несомненно, является наиболее важным элементом дизайна интерьера - они являются основной отделкой помещений (как жилых, так и офисных), они выполняют важную практическую функцию (хранение) и определяют направление расположения. Каждый уважающий себя мебельный магазин предлагает различные типы стен, шкафов, шкафов, кроватей и комодов, соответствующих различным стилям дизайна интерьера. Какие стили мебели в настоящее время наиболее популярны? Скандинавский стиль - практически
Как создать потрясающую галерею WordPress (за 3 шага)
Картинные галереи есть везде в сети. На самом деле, большинство сайтов, которые вы посещаете, вероятно, содержат хотя бы одну галерею, и не без причины. К счастью, создавая свой Галерея WordPress это проще, чем вы можете себе представить. На самом деле, вы, скорее всего, потратите больше времени на выбор изображений, чем на их объединение. В этой статье мы научим вас создавать галерею WordPress в три этапа:
Как отслеживать создание пользователя в Active Directory
В контексте соответствия ИТ и безопасности ИТ общий вопрос, который задают ИТ-менеджеры: «Как отслеживать создание пользователей в Active Directory?» Чтобы ответить на этот вопрос, необходимо включить аудит управления учетными записями в групповой политике. Объекты на основном контроллере домена и поиск журналов безопасности через просмотрщик событий. В этой статье вы увидите способ аудита создания пользователей в Active Directory. Позже вы также увидите более простой, быстрый и лучший вариант
Список полей сводной таблицы отсутствует? Как вернуть его
Итог: если список полей сводной таблицы пропал без вести, эта статья и видео объяснят несколько способов сделать ее снова видимой. Я также поделюсь несколькими советами по работе со списком полей. Уровень умения : Начинающий Смотреть на ютубе (и поднимите палец вверх) Список полей сводной таблицы исчез Как правило, когда вы выбираете ячейку
Жизнь как редактор карт Google: проверка тысяч исправлений и создание карт вручную
... изображений, для их картирования. Кто-то может сказать: «Я живу в Бейкерсфилде, и у нас фактически есть этот новый путепровод, который был построен», или «Есть эти новые и важные дороги, которые были созданы». Любые отчеты о закрытии строительных площадок или других вещах, которые влияют на повседневную езду, мы также добавим в наши карты, чтобы сделать их более полезными. Когда мы получим отчет о том, что в Калифорнии, например, идет строительство, мы проверим веб-сайт Департамента
Как использовать GarageBand: пошаговое руководство
... список альтернатив 6 лучших альтернатив GarageBand для музыкального производства на Windows 6 лучших альтернатив GarageBand для музыкального производства на Windows Вот лучшие альтернативы GarageBand, популярному программному обеспечению Apple для производства музыки, которое вы можете запустить
Как редактировать параметры точки монтирования диска Linux с помощью графического интерфейса
Если вы не хотите вручную редактировать файл / etc / fstab на своих компьютерах с Linux, этот удобный инструмент с графическим интерфейсом может помочь вам в этой задаче. Изображение:
Как заработать бесплатные подарочные карты Amazon
Знаете ли вы, что есть несколько способов заработать подарочные карты Amazon ? Да это так! Изучение того, как зарабатывать бесплатные подарочные карты Amazon, может помочь вам оплачивать вещи
McAfee Internet Security Сравнение 2019 »Бесплатная пробная версия и сравнение«
McAfee Internet Security - обзор и опыт Производительность Скорость сканирования: 10/10 Скорость загрузки: 4/5 Использование ресурсов: 12/15 Общая производительность: 26/30 Обнаружение шпионских программ безопасности : 14/15 Обнаружение вирусов: 15/15 Количество
Города вблизи Лусаки Замбия Экспорт результатов Lusaka в CSV Эта страница поможет вам найти сп...
Города вблизи Лусаки Замбия Экспорт результатов Lusaka в CSV Эта страница поможет вам найти список ближайших соседних городов, деревень, городов поблизости или в пределах 35 миль (56,32 км) от Лусаки к северу, югу, востоку или западу от Лусаки; как правило, в течение одного-двух часов добираться или ездить. Результаты для страны Замбии установлены, чтобы показать города с минимальным населением 5 человек, вы можете уменьшить или увеличить

Комментарии

В контексте соответствия ИТ и безопасности ИТ общий вопрос, который задают ИТ-менеджеры: «Как отслеживать создание пользователей в Active Directory?
В контексте соответствия ИТ и безопасности ИТ общий вопрос, который задают ИТ-менеджеры: «Как отслеживать создание пользователей в Active Directory?» Чтобы ответить на этот вопрос, необходимо включить аудит управления учетными записями в групповой политике. Объекты на основном контроллере домена и поиск журналов безопасности через просмотрщик событий. В этой статье вы увидите способ аудита создания пользователей в Active Directory. Позже вы также увидите более простой, быстрый и лучший вариант
Какие стили мебели в настоящее время наиболее популярны?
Какие стили мебели в настоящее время наиболее популярны? Скандинавский стиль - практически и минималистский На протяжении нескольких лет скандинавский минимализм в современном издании является настоящим хитом аранжировки. Яркие, просторные интерьеры, лишенные помпезности, но очень функциональные и модные, страсть к белым и натуральным материалам - это скандинавская тенденция. Мебель в скандинавском стиле характеризуется простой, неподвластной
4. Кто отвечает за поиск изображений и фотографий?
4. Кто отвечает за поиск изображений и фотографий? Каждый бренд и, следовательно, каждый веб-сайт имеют уникальные потребности в фотографии и графике. Обсуждение до начала проекта должно включать аудит существующих изображений, видео, графики и маркетинговых материалов. Исходя из ваших целей, оцените, являются ли текущие активы достаточно хорошими, чтобы перенести их на новый дизайн, или нужен источник новых материалов. Если необходимо обновить активы, обязательно
У вас есть вопросы о том, как создать галерею изображений WordPress?
У вас есть вопросы о том, как создать галерею изображений WordPress? Задайте вопрос в разделе комментариев ниже!

Мы не хотим, чтобы изображение переполняло наш макет, не так ли?
Какие стили мебели в настоящее время наиболее популярны?
В контексте соответствия ИТ и безопасности ИТ общий вопрос, который задают ИТ-менеджеры: «Как отслеживать создание пользователей в Active Directory?
Какие стили мебели в настоящее время наиболее популярны?
4. Кто отвечает за поиск изображений и фотографий?
4. Кто отвечает за поиск изображений и фотографий?
У вас есть вопросы о том, как создать галерею изображений WordPress?