Украшательства на сайте : делаем надпись поверх картинки

Долгая, вообще, история с картинками. Хорошо, если есть шаблон, где предусмотрены позиции картинок, может быть какой то слайдер или галерея. А все картинки причесаны под один формат. «Проблемными» являются изображения внутри статьи. Во-первых, их нужно особо подготавливать к публикации — обрезать, подогнать к размерам, а во-вторых, часто их нужно подписать.

Вот это «во-вторых» мы красиво и сделаем. Задача такая — в alt или title картинки в wysiwyg редакторе CMS делается описание картинки, далее, при выводе этой картинки в шаблоне статьи, будем делать подстановку в html коде такую, чтобы получить заданное описание поверх картинки. Ну как то так, к примеру :han-shatyr

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

Что нам понадобится

  • Добавить обработчик после загрузки окна, который будет осуществлять подстановку. Добавим в head шаблона конструкцию вроде — $(window).load( … ) ;
  • Определиться с областью где будет происходить замена. Скорее всего — контейнер вывода публикации, пусть это будет <div id=main> … </div>;
  • Для фона подписи нужна полупрозрачная картинка (надеюсь, не надо рассказывать как сделать ? :) ) или специальные каскадные стили. Я использую вариант с картинкой — так как с картинками браузеры более или менее работают одинаково, а вот со стилями (особенно, что касается прозрачности) — наблюдается какой то бардак;
  • Добавим нужные описания в файл каскадных стилей;
  • Убедиться, что скрипт библиотеки jquery подключен :). К примеру, в Drupal он используется штатно, там заботиться об этом не надо, а в вашем случае поступайте по ситуации. Его, кстати, можно подключить с Google, что якобы потенциально уменьшит нагрузку на ваш веб-сервер. Что то в этом есть.. Мне, правда, не нравится зависеть от работы сторонних серверов, даже если это сервера гугл.

Когда все детали понятны, осталось показать что получилось.

Итоговый вариант

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

Обработчик, с использованием jquery (размещается внутри тега <head> в шаблоне)

Картинка для полупрозрачного фона — img-alt-mask.png. Ну не делать же вам её самим?

img-alt-mask

Осталось только добавить стили для класса img-alt, который мы присвоили контейнеру, заменяющему картинку.

Мало букафф? Читайте есчо !

Майская прогулка 2014

Июнь 1, 2014 г.

Прошла майская прогулка, поучаствовал в её велосипедной части. Как все прошло? В целом - здорово! Несмотря на огромное число участников, в очередях ...

Читать

Получаем код раскладки (языка) активного приложения в Delphi

Октябрь 22, 2015 г.

Это не сложный процесс, как всегда лежит в области know-how. Предлагаю использовать вот такую связку функций. [crayon-69bcf0f55558d485489053/] Данная функция определяет активное окно и затем, по ID его процесса, получает код раскладки. Для русскоязычной ...

Читать

Загрузить данные параграфов для связанного с ними entity

Июль 8, 2023 г.

Пример кода для загрузки параграфов. В данном примере будем загружать параграфы, связанные с entity commerce_product_variation (это сущность модуля Commerce). Я привязал информацию по остаткам складов к вариациям в виде параграфов (тип - stocks). ...

Читать

Установим контекстные фильтры в drupal views программно

Август 30, 2021 г.

Пример кода как рендерить блок views с программной установкой contextual filters. Контекстные фильтры устанавливаются методом ViewExecutable::setArguments(array $ARGS). В примере я передаю пару аргументов в качестве значений контекстных фильтров. ...

Читать
 

Комментарии к «Украшательства на сайте : делаем надпись поверх картинки»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Украшательства на сайте : делаем надпись поверх картинки”

  1. Andrew:

    Клас то так и не присвоили… минут пять искал в чем проблема…

  2. Точно, класс забыл в div прописать, спасибо, исправляю…