Как сделать увеличение картинки при нажатии html
Как увеличить изображение: варианты на CSS и JavaScript
Использовать ссылку.
Ограничить высоту картинки с помощью :hover.
Увеличить фото благодаря фокусу :focus.
Увеличить фотографию с помощью позиционирования.
Использование CSS3: увеличение фотографии при клике.
Расширить изображение с помощью свойства transform.
Использовать :after.
Как увеличить изображение с помощью скрипта JavaScript.
37 комментариев:
anya При расширении большого количества изображений с помощью HTML5 они сами выстраиваются в каскад.Скажите как сделать так,чтобы они выстраивались в прямые линии??
спасибо! NMitra После картинки напишите
anya Получилось,но вертикально,а как сделать их в ряд по горизонтали? NMitra Уберите действие из комментария 2 и пробелы между кодом картинок.
. . . anya большое спасибо! Tatiana Chernetsova Спасибо большое! Я многому у вас учусь:) NMitra Я очень рада это слышать))) Владимир В “Использование CSS3: увеличение фотографии при клике”, куда вставлять код?
Извините за наивный вопрос, но я новичок в блоггере. NMitra При написании статьи на вкладке “HTML” см. https://4.bp.blogspot.com/-D4dwjS4d6WU/T1tkoVRlBwI/AAAAAAAACxU/Uy9OvLq1Kzc/s1600/oshibka-nezakrytyi-teg.png Анонимный Примеры не проверены во всех браузерах(Ие в частности).Не понятно как разместить например 5 одинаковых вариантов на одной странице – они просто глючат, по одиночке работают (миниатюра1 – миниатюра2 – побарабану. ) )))Конструктивная критика. NMitra Где есть id, нужно делать его индивидуальным. Не все свойства поддерживаются IE, но это не надолго. Для transition и transform нужны префиксы. Я рассматривала эти свойства в отдельных статьях. Анонимный здравствуйте. спасибо вам. много чего интересного я у вас узнал. у меня только есть вопрос. вот в CSS3 можно сделать так чтобы при увеличении страница не опускалась а оставалась в таком же положении в каком она и была. а то когда нажимаю я на нее страница и картинка спускаются вниз и как то не удобно. я новичок в этом. поэтому сам не могу разобраться. заранее спасибо! NMitra Отрегулируйте значения сами
См. подробнее https://shpargalkablog.ru/2011/04/css-nalozhenie.html Анонимный отрегулировать картинку по центру я смог, но не смог никак сделать чтобы при открытии картинки, страница не не сползала вниз. я наверное как то не правильно объясняю то что хочу сделать. Анонимный хочу исправить ошибку. “страница не сползала вниз” NMitra При использовании :target не получиться. 🙁 NMitra Исправила статью, замечания учтены. Дмитрий Спасибо, очень интересно. Хочу использовать transform. Подскажите, как сделать чтобы предыдущая картинка не подныривала под следующую. Спасибо. NMitra figure.vkl2:focus <
z-index: 100;
position: relative;
> Дмитрий Спасибо огромное. виталий нестёркин Здравствуйте долго искал как это воплотить благодаря вам сделал
Увеличить фотографию с помощью позиционирования но вот загвоздка картинка открывается вбок и поэтому у людей с неширокими мониторами будет не вся видна подскажите что написать в коде чтобы изменить а точнее сдвинуть к центру экрана
как сейчас это выглядит можно увидеть на сайте
https://xn--51-8kcfemaodkveyaqedoqejz1ao.xn--p1ai/ NMitra Здравствуйте,
.blok1 img + img
шас подберу нужное значение а вот left: 50% непонятный параметр менял на 10 % визуально нечего не изменилось что он регулирует и если понадобится каким параметром немного опустить в низ картинку? NMitra margin-top.
У вас две строки
Нижняя запись приоритетная, она перебивает значение left: 50%;
По хорошему нужно сделать так (я сразу этого не сделала, чтобы акцентировать ваше внимание на нужных свойствах)
Теория:
https://shpargalkablog.ru/2012/03/div-po-centru-html.html
https://shpargalkablog.ru/2012/03/vyrovnyat-tekst-vertikali.html
https://shpargalkablog.ru/2011/04/css-nalozhenie.html
https://shpargalkablog.ru/2011/03/svoistva-margin-padding.html виталий нестёркин Спасибо большое за помощь шас пока некогда ближе к ночи попробую
разобратса виталий нестёркин Наталья здравствуйте пытался написать вам письмо на адрес [email protected].письмо не отравилась
Ошибка
Недопустимый адрес
Адрес [email protected]. не существует или заблокирован. Письмо не было послано виталий нестёркин прошу прошения за мою невнимательность просто когда вставлял адрес
не заметил точку после ru все нормально с ящикам Юрий Наташа, больше всего понравился вариант с transform: scale. Но при быстром перемещении курсора с одной соседней картинки на другую из границы “цепляются”:
article img <
width: 100%;
height: 231px;
transition: 0.5s;
>
article img:hover <
transform: scale(1.5);
>
Видел в комментариях:
figure.vkl2:focus <
z-index: 100;
position: relative;
>
Но это не решает проблемы,т.к. в приоритете все равно будет какое-нибудь конкретное изображение. Может в таких случаях нужно задавать большее расстояние между img, чтобы они не “цепляли” друг друга? Или не указывать для изображений слишком большие размеры при наведении курсора? NMitra figure:hover, figure:focus <
z-index: 101;
> Юрий К сожалению, не помогло. Это моя вина, т.к. целиком не объяснил ситуацию. Дело в том, что изображения находятся внутри ячеек таблицы. Чтобы было более наглядно приведу код (в html все скобки удалил):
section
article
h2 Название статьи /h2
figure :first-child <
transform: translateX(-10px);
>
section > :last-child <
transform: translateX(10px);
>
figure img <
width: 100%;
height: 230px;
transition: 0.5s;
>
figure img:hover <
transform: scale(1.5);
position: relative;
z-index: 100;
>
Для крайних статей и всех изображений прописано transform. Может они конфликтуют? Хотя о возможности такого информации нигде не нашел.
NMitra Ничего не понимаю, нужна или ссылка на страницу или на пример на https://jsfiddle.net/ Юрий Половина кода все равно “улетела”. Есть section, в которой три article. В каждом article размещено изображение. Далее:
section <
display: table;
width: 100%;
border-spacing: 10px;
>
Как увеличивать изображения на сайте
Изображения на сайтах встречаются довольно часто и при этом они бывают больших размеров, но дизайны сайтов далеко не всегда позволяет разместить её в полном формате. Поэтому нужно придумать способ, который бы позволял увеличивать их.
Начнем с примитивных методов, а закончим самым лучшим способом увеличения изображения.
1. Увеличение изображения через ссылку
Увеличение изображения через ссылку — самый простой способ без применения каких-либо CSS. Просто ставим ссылку на изображение с большим размером.
Пояснение к примеру:
- rel=”nofollow” — для того, чтобы ссылка не передавала вес изображению ;
- target=”_blank” — изображение откроется в новой вкладке.
Последний параметр довольно важен, поскольку зачастую из-за неопытности пользователя может возникнуть следующая ситуация: открыв страницу с картинкой, он не знает как вернутся назад и поэтому просто закрывает вкладку, а значит полностью покидает сайт. Прописав последний параметр, мы его подстраховываем от такого случая, ведь у него останется открыта начальная страница.
Несмотря на простоту применения, этот способ является далеко не лучшим, поскольку для увеличения изображения приходится открывать новую страницу, но зато таким методом можно просматривать изображения любых размеров. Так что делаем вывод: если необходимо увеличить изображения очень большого размера, то это единственный верный способ сделать это.
2. Автоматическое увеличение изображение при наведении курсора
Название способа четко отражает его суть: при наведении курсора мышки на изображение оно автоматически зуммируется. Реализация метода элементарная, но опять-таки этот способ мне не нравится тем, что невозможно просто провести курсор через изображение. Ведь оно всегда будет увеличиваться — это может начать раздражать пользователя.
Следующий код реализует возможность автоматического зуммирования при наведении курсора:
Пояснения к примеру:
- img.zoom < max-width: 150px >— задает ширину изображения до увеличения;
- img.zoom:hover < max-width: none >— задает ширину изображения после увеличения (параметр none означает, что ограничение на максимальный размер отсутствует);
3. Увеличение изображения при клике
Это самый распространенный и удобный метод увеличения изображений. Причем здесь существует множество способов и вариантов реализации. Рассмотрим несколько самых популярных вариантов:
3.1. Увеличение при активном фокусе
После клика мышкой на изображение оно увеличивается, однако из-за этого съезжает текст вниз, поэтому этот способ далеко не лучший. Приведем пример кода:
Как это выглядит на странице:
3.2. Увеличение изображения поверх страницы
Ниже приведен код для реализации этого метода
Как это выглядит на странице:
Варианты 3.1 и 3.2 полностью основаны на возможностях CSS, а значит являются “лайт” способами, т.к. не нагружают страницу лишними скриптами. Есть и другие варианты, которые также основаны на CSS, однако, они уже более экзотические. Я не буду рассматривать их в рамках этой статьи, поскольку некоторые браузеры не поддерживаются подобные вещи.
3.3. Красивое увеличение
Данный метод является самым красивым и удобным на мой взгляд. Для его подключения придется немного повозиться с добавление различных скриптов, поэтому для реализации рассмотрим пошаговую установку:
В архиве будет одна папка содержащая изображение, два файла .js и один .css.
2) Добавьте эти файлы к себе на сайт так, как они есть в архиве (т.е. папка imgs должна лежать в директории где будут файлы .js и .css).
3) На каждой странице сайта, где будет использоваться увеличение изображения, необходимо подключить метод и стиль simplebox:
Я советую указывать полный путь к файлам simplebox_util.js , simplebox.css и simplebox.js , чтобы их можно было легко использовать для каждой страницы сайта.
Для использования этого метода зуммирования используется следующая конструкция:
Примечание
Вместо адреса меньшей копии изображения можно прописать адрес основного изображения, но при этом применить атрибут width, в котором указать небольшую ширину (читайте подробнее о теге img).
Datalife Engine Demo
Увеличение картинки при нажатии, – в предыдущей статье мы рассмотрели один из способов увеличения картинки на страницах сайта. Картинка увеличивалась при наведении на нее курсором мышки.
Эффект увеличения картинки при наведении, который был рассмотрен в прошлой статье, был реализован с использованием библиотеки jQuery – jquery.min.js, и ещё для того, чтобы задействовать библиотеку, в html код страницы был добавлен код Java скрипта, который обрабатывает событие – наведение курсора на картинку.
В процессе создания html кода, мы добились того, что картинка у нас увеличивалась, но в процессе увеличения картинки, был выявлен неприятный эффект – картинка при увеличении смещала в сторону окружающий контент.
Возможно, в некоторых случаях, на эту неприятность можно было бы внимания и не обращать. Но, на страницах с большим количеством контента, такое увеличение картинки смотрится не очень красиво.
Поэтому, я решил рассмотреть еще один способ увеличения картинки, при котором, контент вокруг картинки не меняет своего положения.
Увеличение картинки без смещения окружающего контента достигается с помощью открытия данной картинки в новом, всплывающем окне. Такие всплывающие окна называют модальными окнами.
Увеличение картинки при нажатии на нее кнопкой мышки, будем осуществлять с помощью библиотек jQuery, точно так же, как и в прошлой статье. Но на этот раз, мы будем использовать две библиотеки, одна из библиотек jquery.min.js, нам уже знакома, и еще мы добавим библиотеку – jquery.magnifier.js.
Кроме библиотек jQuery, в нашем коде, мы будем использовать изображение magnify.cur. Это изображение появляется в виде значка плюс (+) перед картинкой, которую мы будем увеличивать на странице сайта.
Увеличение картинки при нажатии на кнопку мышки
– Итак, предположим, что у нас есть html страница. В качестве контента на странице присутствует только текст.
– Мы решили добавить к тексту картинку, которая будет увеличиваться при нажатии по ней мышкой.
– После увеличения картинки, чтобы ее уменьшить, нужно будет нажать на нее еще раз.
Вот такая вот задача.
Для того, чтобы было понятнее, я представлю процесс создания кода увеличения картинки при нажатии, в виде последовательных шагов. И прежде чем перейти к рассказу, хочу отметить, что файл с html кодом страницы и файлы библиотек, о которых здесь рассказывается, Вы можете скачать в архиве в конце данной статьи. Итак:
Шаг 1. Добавим в начало статьи картинку, причем в качестве параметров ширины и высоты картинки зададим уменьшенные значения, пусть ширина картинки будет равна 180 пикселов, а высота картинки пусть будет равна 140 пикселов. Реальные размеры 800×600 px картинка приобретет после увеличения.
Картинку добавим с помощью следующего кода:
Шаг 2. Теперь скопируем в каталог, где находится наша страница три файла – jquery.min.js, jquery.magnifier.js и magnify.cur. Это файлы библиотек jQuery и файл изображения курсора в виде знака плюс (+).
Шаг 3. Чтобы подключить библиотеки jQuery, добавим в контейнер head страницы путь к файлам библиотек:
Шаг 4. Это очень важный момент – для того, чтобы библиотеки jQuery – jquery.min.js и jquery.magnifier.js, заработали, необходимо в html код вывода картинки на страниц добавить –
класс class=”magnify” и стиль style=”width:180px; height:140px” с которыми данные библиотеки могут работать:
Вот и все изменения, которые необходимо сделать на странице сайта, чтобы увеличение картинки при нажатии заработало.
Скачать архив с html кодом страницы, библиотеками jQuery о которой шла речь в данной статье, Вы можете по ссылке:
Источники:
https://shpargalkablog.ru/2011/05/kak-uvelichit-izobrazhenie.html
https://zarabotat-na-sajte.ru/uroki-html/kak-uvelichit-izobrazheniya.html
https://sozdavaite-sait.ru/html_sites/140-uvelichenie-kartinki-pri-nazhatii.html