Главная » 2015 » Ноябрь » 27 » Как увеличить изображения на сайте через JavaScript и CSS, автоматическое зуммирование
00:52
Как увеличить изображения на сайте через JavaScript и CSS, автоматическое зуммирование

Как увеличивать изображения на сайте

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

Начнем с примитивных методов, а закончим самым лучшим способом увеличения изображения.

1. Увеличение изображения через ссылку

Самый простой способ без применения каких-либо CSS. Просто ставим ссылку на изображение с большим размером.

<a rel="nofollow" target="_blank" href="адрес-изображения"> <img width="ширина" height="высота" src="адрес-изображения-или-меньшей-копии"/> </a>

Пояснение к примеру:

  • rel="nofollow" - для того, чтобы ссылка не передавала вес изображению;
  • target="_blank" - изображение откроется в новой вкладке.

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

Пример работы:

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

2. Автоматическое увеличение изображение при наведении курсора

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

Следующий код реализует возможность автоматического зуммирования при наведении курсора:

<style> img.zoom { cursor: pointer; max-width: 150px; } img.zoom:hover { max-width: none; } </style> <img class="big" src="адрес_фото" />

Пример img.big { cursor: pointer; max-width: 150px; } img.big:hover { max-width: none; }

Пояснения к примеру:

  • img.zoom {max-width: 150px} - задает ширину изображения до увеличения;
  • img.zoom:hover{max-width: none} - задает ширину изображения после увеличения (параметр none означает, что ограничение на максимальный размер отсутствует);

3. Увеличение изображения при клике

Это самый распространенный и удобный метод увеличения изображений. Причем здесь существует множество способов и вариантов реализации. Рассмотрим несколько самых популярных вариантов:

3.1. Увеличение при активном фокусе

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

<style type="text/css"> .foc {width: 150px; cursor:pointer; display:inline;} .foc:focus {width: auto; z-index:100;} </style> <img border="0" src="адрес_фото" class="foc" tabindex="1"/> .popup {width: 150px; cursor:pointer; display:inline;} .popup:focus {width: auto; z-index:100;}

Как это выглядит на странице:

3.2. Увеличение изображения поверх страницы

Ниже приведен код для реализации этого метода

<style> .blokimg {position: relative;} .overlay{ display: none; height: auto; left: -15%; position: absolute; top: -50%; width: auto; z-index: 999; } .overlay .overlay_container{ display: table-cell; vertical-align: middle; } .overlay_container img{ background-color: #AB5; padding: 10px; -webkit-border-radius: 5px; -moz-border-radius: 5px; } .overlay:target { display: table; } </style> <div class="blokimg"> <div class="overlay" id="contenedor1"> <div class="overlay_container"> <a href="#close"> <img src="большое_изображение"/> </a> </div> </div> <a href="#contenedor1"> <img src="маленькое_изображение" id="imagenM1" /> </a> </div>

Как это выглядит на странице:

.blok {position: relative;} .overlay{ display: none; height: auto; left: -10%; position: absolute; top: -50%; width: auto; z-index: 999; } .overlay .overlay_container{ display: table-cell; vertical-align: middle; } .overlay_container img{ background-color: #AB5; padding: 15px; -webkit-border-radius: 10px; -moz-border-radius: 10px; } .overlay:target { display: table; }

 

Варианты 3.1 и 3.2 полностью основаны на возможностях CSS, а значит являются "лайт" способами, т.к. не нагружают страницу лишними скриптами. Есть и другие варианты, которые также основаны на CSS, однако, они уже более экзотические. Я не буду рассматривать их в рамках этой статьи, поскольку некоторые браузеры не поддерживаются подобные вещи.

3.3. Красивое увеличение

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

1) Скачайте архив: simplebox.rar

В архиве будет одна папка содержащая изображение, два файла .js и один .css.

2) Добавьте эти файлы к себе на сайт так, как они есть в архиве (т.е. папка imgs должна лежать в директории где будут файлы .js и .css).

3) На каждой странице сайта, где будет использоваться увеличение изображения, необходимо подключить метод и стиль simplebox:

<script type="text/javascript" src="simplebox_util.js"></script> <script type="text/javascript"> (function(){ var boxes=[],els,i,l; if(document.querySelectorAll){ els=document.querySelectorAll('a[rel=simplebox]'); Box.getStyles('simplebox_css','simplebox.css'); Box.getScripts('simplebox_js','simplebox.js',function(){ simplebox.init(); for(i=0,l=els.length;i<l;++i) simplebox.start(els[i]); simplebox.start('a[rel=simplebox_group]'); }); } })();</script>

Я советую указывать полный путь к файлам simplebox_util.js, simplebox.css и simplebox.js, чтобы их можно было легко использовать для каждой страницы сайта.

Для использования этого метода зуммирования используется следующая конструкция:

<a rel="simplebox" href="адрес_изображение"> <img src="адрес_меньшей_копии_изображения"></a>

Примечание Вместо адреса меньшей копии изображения можно прописать адрес основного изображения, но при этом применить атрибут width, в котором указать небольшую ширину (читайте подробнее о теге img).

Как это выглядит на странице:

Категория: Все о сайтах | Просмотров: 446 |
Всего комментариев: 0
avatar