Вы можете сделать это с помощью colorbox. Если вы уже используете это в другом месте на вашем сайте, мой также придерживаться этого. И он может работать без повторного запроса к серверу изображения (при первом открытии colorbox, однако, он делает запрос на файл overlay.png). Существует возможность использовать фотографии с расширением .php, но я добился большего успеха, просто воспользовавшись опцией inline:true
, которая сообщает colorbox вытянуть содержимое из того, что уже есть.
В вашем случае требуется немного больше работы. Обычно вы можете сделать это только с одним тегом, но у вас есть небольшое изображение в содержимом страницы, а затем нужно увеличить размер в модальном окне. Таким образом, вам нужен сам тег миниатюрного изображения, а также тег большего размера, который будет использовать colorbox. Но пока оба атрибута src
одинаковы, не должно быть проблем с несколькими запросами. Ваш тег уменьшенного изображения будет содержать ссылку на тег colorbox image, который я сделал здесь с data-cb
:
<img src="script.php?parameter1=foo¶meter2=bar" width="50" height="50" data-cb="img1-colorbox">
И затем для содержимого colorbox (может быть где угодно на странице, так как оно не видно за пределами colorbox):
<div class="colorboxContent"> <!-- this class is given the rule "display:none" -->
<img id="img1-colorbox" src="script.php?parameter1=foo¶meter2=bar">
</div>
Если вам нужен html для работы с изображением, вам нужно только обернуть этот тег <img>
в <div>
и переместить идентификатор в эту оболочку. И JS для colorbox:
$(document).ready(function() {
$("[data-cb]").colorbox({
inline:true,
href:function() { return "#" + $(this).data("cb") }
});
});