NexxDigital - компьютеры и операционные системы

1. Плагин jQuery лупа

Увеличение квадратной области.

2. Cloud Zoom

Этот плагин по качеству реализации ни чем не уступает коммерческим скриптам по масштабированию изображений, например, такому как Magic Zoom. Много различных возможностей и совместимость с наиболее популярными браузерами. Рекомендую посмотреть этот скрипт в деле на демонстрационной странице. Я думаю, он не оставит вас равнодушными.

3. jQuery плагин для увеличения области текста или изображения под мышкой

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

4. jQuery плагин для увеличения изображения

Выполнен в виде экрана iPhone.

5. MooTools плагин «Zoomer»

Для детального просмотра изображения достаточно просто навести курсор мыши на него.

6. jQuery портфолио с zoom-эффектом

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

7. jQuery плагин «Easy Image Zoom»

Увеличение области, находящейся под курсором.

8. jQuery плагин «Zoomy»

Эффект лупы для увеличения части изображения.

9. jQuery плагин «BeZoom» 10. jQuery плагин «ImageLens»

Эффект увеличительной лупы при наведении курсора мыши на изображение. Реализовано с помощью jQuery.

11. jQuery плагин «Magnifier»

Эффект увеличения области изображения при наведении.

12. Зуммер изображений для интернет-магазина «jqZoom»

Можно использовать для реализации детального просмотра товара в интернет магазинах.

13. Просмотр большого изображения в ограниченной области

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

14. AJAX-zoom плагин

AJAX-zoom представляет собой плагин очень функциональной галереи, с большим набором функций. Плагин работает на JQuery и PHP и имеет более 250 вариантов отображения. В дополнение его функциональности - это очень гибкий плагин, который может быть интегрирован в любой сайт.

В статье рассмотрена процедура установки плагина cloud-zoom на базе jQuery, а также описаны вспомогательные настройки плагина для оптимизации отображения увеличительного окна.

Довольно часто на ресурсах с большим запасом графического материала прибегают к применению приема лупы. К примеру, имеется изображение большого размера и разрешения. Чтобы оно поместилось в видимую зону экрана, его понадобится уменьшить, что ухудшит читабельность картинки, сложно будет рассмотреть детали. В этом случае поможет специальный плагин, который будет локально увеличивать определенные зоны картинки при наведении. Также такой прием очень часто используется в интернет-магазинах для того, чтобы потенциальный клиент мог хорошо в деталях изучить предлагаемый ему товар.

Стоит отметить, что в сети довольно много схожих программных пакетов, которые позволяют реализовать лупу для изображений. Поэтому логично выбрать из всего множества плагинов наиболее оптимальный вариант. Во время проведения своего анализа, я выбрал 3 основных критериев, по которым проводил отбор:

  • поддержка разных браузеров;
  • объем функциональных возможностей;
  • объем плагина и скорость, с которой он работает.

Первый вариант, который идеально подошел к моим критериям, стал cloud-zoom . Эта статья будет посвящена установке и работе только этого скрипта, а последующие решения, которые тоже соответствуют поставленным критериям, будут рассмотрены в будущих статьях.

Установка

Итак, cloud-zoom . Автором этой разработки является некий профессор Туча, стоит уважить его труды и поблагодарит за этот продукт. В первую очередь хотелось бы отметить главное преимущество скрипта, в сравнении с другими – способность кода взаимодействовать с разными форматами галерей.

Первым этапом установки плагина станет скачивание последней jQuery, также непосредственно, файл самого плагина и таблица стилей к нему. Все это можно найти на официальном ресурсе продукта.

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

HTML

/*в head */ < link rel= "stylesheet" type= "text/css" href= "cloud-zoom/cloud-zoom.css" /> /*в body*/ < script type= "text/javascript" src= "https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" > < script type= "text/javascript" src= "cloud-zoom/cloud-zoom.1.0.2.js" >

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

HTML

< a class = "cloud-zoom" href= "big-img.jpg" > < img src= "small-img.jpg" />

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

Как видно, окно лупы намертво прилипло к уменьшенной версии картинки. Этот недочет устраняется посредством специальных настроек, которые корректируют оформление и положение окна лупы. В данном примере рассмотрим, как можно поправить местоположение окна лупы

HTML

< a class = "cloud-zoom" href= "big-img.jpg" rel= "adjustX: 20, adjustY: 0" > < img src= "small-img.jpg" />

Данная запись означает, что мы немного переопределили координаты вывода окна, относительно оси Х. также обратите внимание на то, что все настройки для плагина прописываются в атрибуте rel через запятую. Проверяем, сработала ли наша команда

Настройки

Ниже приведен список всех возможных настроек плагина и краткое их описание

  • zoomWidth – определяет размер ширины окна для вывода локального увеличения картинки. Если для этого параметра ничего не определено, то окно повторит значение ширины картинки.
  • zoomHeight – определяет размер высоты окна для вывода локального увеличения картинки. Если для этого параметра ничего не определено, то окно повторит значение высоты картинки.
  • position – переопределяет позицию расположения окна для вывода. Аналогично одноименному CSS-свойству, принимает значения "left", "right", "top" и "bottom". Позиция устанавливается относительно рассматриваемой картинки. Также можно определить вывод окна в необходимом контейнере через привязку к идентификатору. За это отвечает значение "blockId".
  • adjustX – устанавливает положение окна лупы относительно оси координат абсцисс.
  • adjustY – устанавливает положение окна лупы относительно оси координат ординат.
  • tint – отвечает за цвет рамки, которая обрамляет окно вывода лупы. Не работает при использовании параметра softFocus.
  • tintOpacity – определяет просвечиваемость границ курсора лупы.
  • lensOpacity – определяет просвечиваемость границ окна вывода лупы.
  • softFocus – придает эффект размытия той части картинки, которую не захватывает курсор лупы. Не работает при использовании параметра tint.
  • smoothMove – позволяет настроить более плавное передвижение курсора лупы в зоне изучаемой картинки.
  • showTitle – соответствует функциям обычного атрибута title.
  • titleOpacity – позволяет контролировать прозрачность блока с описанием картинки.

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

  • .cloud-zoom-lens – курсор, который определяет локальную зону увеличения.
  • .cloud-zoom-title – отвечает за стилизацию заголовка лупы.
  • .cloud-zoom-big – окна для вывода увеличения картинки.
  • – оформление сообщения загрузки информации.
Работа в режиме галереи

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

HTML

< a class = "cloud-zoom" href= "big-img.jpg" id= "loupe1" rel= "position: "right", adjustX: 10, adjustY: 0" > < img src= "small-img.jpg" width= "200" /> < ul> < li> < a class = "cloud-zoom-gallery" href= "big-img.jpg" title= "" rel= > < img src= "small-img.jpg" width= "100" /> < li> < a class = "cloud-zoom-gallery" href= "masdefault.jpg" title= "" rel= "useZoom: "loupe1", smallImage: "small-img.jpg"" > < img src= "masdefault.jpg" width= "100" height= "114px" /> < li> < a class = "cloud-zoom-gallery" href= "kostyum" title= "" rel= "useZoom: "loupe1", smallImage: "small-img.jpg"" > < img src= "kostyum.jpg" width= "100" height= "114px" />

По внешнему виду напоминает обычную галерею, созданную посредством маркированного списка. Также уже узнаются элементы плагина cloud-zoom с указанием некоторых его настроек. В этом случае необходимо обратить внимание на команду useZoom , который привязывает каждый элемент галереи к основному блоку для просмотра. Связь образовывается за счет соответствия идентификаторов. Помимо этого добавилась еще один параметр – smallImage , он в свою очередь определяет, какое именно изображение показать в уменьшенном формате. Стоит отметить, что для режима галереи необходимо наличие трех картинок: 2 которые будут взаимодействовать с плагином, и еще одна в уменьшенном варианте для создания списка иконок.

На практике этот пример будет выглядеть так

На заметку

Если для запуска галереи используется ajax, то плагин может не отработать. Чтобы исправить этот баг, необходимо прописать переинициализацию плагина. В стандартном виде это выглядит так

JavaScript

jQuery(".cloud-zoom, .cloud-zoom-gallery" ) . CloudZoom() ;

Подводя итог

В завершении хочется отметить простоту использования плагина и гибкость при внесении корректировок в оформление данного функционального элемента. Помимо этого радует высокий показатель кроссбраузерности и маленький объем скрипта – всего 6 килобайт. Отдельного внимания заслуживает поддержка режима галереи. Единственное, что немного смущает, что все настройки вносятся непосредственно в HTML-документ, это немного засоряет наш код. Более практичнее было бы вынести их во внешний js-файл. Ну а в целом плагин достоин внимания и признания.

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

Шаг 1. XHTML

Разметка для получения эффекта достаточно проста. мы используем только несколько div и изображение.

demo.html

div #iphone отображает рамку iРhone. Внутри нее располагается div #webpage со скриншотом страницы. Скриншот показывается в половину от своего действительного размера, таким образом мы используем одно и тоже изображение для мелкой версии (показанной в рамке iPhone) и для большой версии, которая показывается в круглом окошке.

Также там есть div #retina, для которого задана круглая форма с помошью CSS3. Он отображает большую версию скриншота страницы как фон и смещается при движении курсора мыши.


Шаг 2. CSS

Зададим стили для div #iphone, #webpage и #retina, что сделает возможным воплощение задуманного эффекта.

style.css #iphone{ /* Рамка div iphone */ width:750px; height:400px; background:url("img/iphone_4G.png") no-repeat center center; position:relative; } #webpage{ /* Сожержит скриншот страницы */ width:499px; height:283px; position:absolute; top:50%; left:50%; margin:-141px 0 0 -249px; } #retina{ /* Эффект лупы */ background:url("img/webpage.png") no-repeat center center white; border:2px solid white; /* Позиционирование абсолютное, таким образом мы можем перемещать ее */ position:absolute; height:180px; width:180px; /* Скрыть по умолчанию */ display:none; /* A blank cursor, notice the default fallback */ cursor:url("img/blank.cur"),default; /* Тень CSS3 */ -moz-box-shadow:0 0 5px #777, 0 0 10px #aaa inset; -webkit-box-shadow:0 0 5px #777; box-shadow:0 0 5px #777, 0 0 10px #aaa inset; /* Скругленные углы CSS3 */ -moz-border-radius:90px; -webkit-border-radius:90px; border-radius:90px; } #retina.chrome{ cursor:url("img/blank_google_chrome.cur"),default; } #main{ /* Основной div */ margin:40px auto; position:relative; width:750px; }

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

div #retina также получает абсолютное позиционирование, таким образом, возможно перемещать его в части jQuery просто задавая смещение от верха и слева. Данный div также имеет скриншот страницы в качестве фона (в своем оригинальном размере). Смещение фона при перемещении div созает иллюзию увеличения маленького кусочка скриншота позади него..


Также div #retina имеет граничный радиус со значением, равным ровно половине его ширины, что делает его точно круглым (по крайней мере в браузерах, которые поддерживают свойство border-radius CSS3 - Chrome, Safari, Opera и Firefox).

И в завершении мы прячем указатель мыши установкой пустого курсора (Google Chrome выдает ошибку при отрисовке полностью пустого курсора, поэтому нам надо установить для него белый курсор размером в 1px). Opera полностью игнорирует пользовательские курсоры, и сделать ничего нельзя с данным фактом. Поэтому пользователи данного браузера будут иметь негативный опыт при просмотре эффекта.

Шаг 3. jQuery

Стили заданы, пора приступать к программированию.

script.js $(document).ready(function(){ /* Код выполняется при получении события ready */ var left = 0, top = 0, sizes = { retina: { width:190, height:190 }, webpage:{ width:500, height:283 } }, webpage = $("#webpage"), offset = { left: webpage.offset().left, top: webpage.offset().top }, retina = $("#retina"); if(navigator.userAgent.indexOf("Chrome")!=-1) { retina.addClass("chrome"); } webpage.mousemove(function(e){ left = (e.pageX-offset.left); top = (e.pageY-offset.top); if(retina.is(":not(:animated):hidden")){ webpage.trigger("mouseenter"); } if(left sizes.webpage.height) { /* Если мы находимся вне границ сриншота страницы, то прячем div retina */ if(!retina.is(":animated")){ webpage.trigger("mouseleave"); } return false; } /* Перемещаем div retina за мышью (и прокручиваем фон) */ retina.css({ left: left - sizes.retina.width/2, top: top - sizes.retina.height/2, backgroundPosition: "-"+(1.6*left)+"px -"+(1.35*top)+"px" }); }).mouseleave(function(){ retina.stop(true,true).fadeOut("fast"); }).mouseenter(function(){ retina.stop(true,true).fadeIn("fast"); }); });

В функции mousemove текущие координаты курсора мыши передаются как e.pageX и e.pageY , но они являются абсолютными по отношению ко всему документу. Вычитая смещение div #webpage, мы получаем относительные координаты курсора мыши, которые позже используются для позиционирования div #retina.

Таким образом, в комбинации с пустым курсором мы создаем эффект лупы используя только JavaScript и CSS.

Заключение

Дебаты между приверженцами Flash и HTML5 разгорелись с новой силой в последнее время, так как люди начали искать способы получать тот же уровень функциональности без задействования внешних приложений. Данный подход приводит к более простым приложениям. Однако надо помнить о сохранении кроссбраузерности решений, что удается далеко не всегда (вспомните IE).

Надеюсь, что урок Вам понравился!

Плагин Zoomy реализует красивый эффект наведения лупы над изображением. Все выполнено на высшем уровне — лупа выглядит «как живая».

Проверено в:

  • IE 6-8
  • Firefox 4
  • Opera 9.5-10
  • Safari 4
  • Chrome
Что качать?
  • библиотеку jquery качаем или .
  • (10.99 Kb) — плагин или его (4.49 Kb).
  • (2.87 Kb) стили для лупы.
Быстрый старт

Подключаем библиотеки и таблицу стилей:

HTML простой и интуитивно понятный — маленькая картинка, обернутая ссылкой на большую. Для удобства инициализации ссылке присвоим класс zoom.

Инициализируем плагин:

jQuery(function(){ jQuery(".zoom").zoomy(); });

Вот собственно и все.

А теперь подробнее

При инициализации, можно передавать следующие параметры:

Параметры zoomy() События

Можно настраивать включение лупы в зависимости от действий пользователя. Доступны четыре события:

Примеры инициализации с параметрами

Настраиваем лупу. Задаем размер, русифицируем надпись, изменяем атрибут с адресом большой картинки.



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы