Как сделать так, чтобы при нажатии <img>отображалось полноразмерное изображение? - PullRequest
12 голосов
/ 22 января 2009

Обычно у вас есть изображение изображения с src в качестве источника изображения и alt в качестве альтернативного текста:

<img src="image1.gif" alt="Image 1" />

Можете ли вы что-то вроде?:

<img src="image1.gif" alt="image2.gif" />

Это означает, что src имеет источник изображения, а alt также имеет источник изображения.

Что я хочу сделать, это вытащить 2 изображения из flickr с помощью API flickr (изображение большого пальца и изображение нормального размера), и когда пользователь нажимает на большой палец, отображается изображение нормального размера.

Я пробовал что-то вроде этого:

<a href="image2.gif" ><img src="image1.gif"/></a>

... но я получаю изображение по умолчанию ' not found ' в качестве большого пальца (даже если изображение действительно существует).

Я использую JQuery / Javascript.

Любая помощь, предложения или даже альтернативы приветствуются и приветствуются.

Спасибо


Спасибо за ответ, Сэм,

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

но мне нравится идея geowa4 .

но, пожалуйста, продолжайте получать ответы ...

спасибо

Ответы [ 9 ]

15 голосов
/ 22 января 2009

The

<a href="image2.gif" ><img src="image1.gif"/></a>

техника всегда работала для меня. Я использовал это с хорошим эффектом в своем дневнике Суперкубка, но я вижу, что сценарии, которые я использовал, сломаны. Как только я их исправлю, я отредактирую в URL.

10 голосов
/ 22 января 2009

alt - это текст, который отображается, когда изображение не может быть загружено или браузер пользователя не поддерживает изображения (например, программы чтения для слепых).

Попробуйте использовать что-то вроде лайтбокса:

http://www.lokeshdhakar.com/projects/lightbox2/

обновление: Эта библиотека может быть лучше, поскольку она основана на jQuery, который вы сказали, что используете http://leandrovieira.com/projects/jquery/lightbox/

8 голосов
/ 22 января 2009
<img src='thumb.gif' onclick='this.src="full_size.gif"' />

Конечно, вы можете изменить событие onclick для загрузки изображения в любое место.

1 голос
/ 22 января 2009

Это не будет делать то, что вы ожидаете:

<img src="image1.gif" alt="image2.gif" />

Атрибут ALT только для текста - он не будет делать ничего особенного, если вы дадите ему URL изображения.

Если вы хотите изначально отобразить изображение в низком разрешении, а затем заменить его изображением в высоком разрешении, вы можете выполнить некоторое кодирование JavaScript, чтобы поменять изображения. Или, возможно, загрузить изображение в div, у которого есть фоновый рисунок, заполненный изображением с низким разрешением. Затем, когда изображение с высоким разрешением загружается, оно загружается поверх фона.

К сожалению, прямого способа сделать это нет.

Ваша вторая попытка создаст ссылку на изображение2, но на самом деле отобразит изображение 1.

<a href="image2.gif" ><img src="image1.gif"/></a>

Если вы хотите открыть версию с более высоким разрешением, хорошая идея @ Сэма.


Этот CSS может работать для вас (он работает для меня в Firefox 3):

<html>
<head>
    <style>
        .lowres { background-image: url('low-res.png');}
    </style>
</head>
<body>
    <div class="lowres" style="height:500px; width:500px">
        <img src="hi-res.png" />
    </div>
</body>
</html>

В этом примере вы должны установить высоту / ширину div для изображения. Фактически он будет загружать оба изображения одновременно, но при условии, что низкое разрешение загружается быстро, вы можете сначала увидеть его во время загрузки изображения с высоким разрешением.

0 голосов
/ 13 июня 2018

Используйте это как пример

https://www.w3schools.com/jquerymobile/tryit.asp?filename=tryjqmob_popup_image

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

<div data-role="page">
  <div data-role="header">
    <h1>Welcome To My Homepage</h1>
  </div>

  <div id="pageone" data-role="main" class="ui-content">
    <p>Click on the image to enlarge it.</p>
    <p>Notice that we have added a "back button" in the top right corner.</p>
    <a href="#myPopup" data-rel="popup" data-position-to="window">
    <img src="https://lh3.googleusercontent.com/8XQPMmZImaDsSyEPbAptXOHQYZKP_rggu_tr9EPl3jpPnuXOd5gGP5kQKqFT0ZLXQ36-=s136" alt="Skaret View" style="width:200px;"></a>

    <div data-role="popup" id="myPopup">
      <p>This is my picture!</p> 
      <a href="#pageone" data-rel="back" class="ui-btn ui-corner-all ui-shadow ui-btn-a ui-icon-delete ui-btn-icon-notext ui-btn-right">Close</a><img src="https://lh3.googleusercontent.com/8XQPMmZImaDsSyEPbAptXOHQYZKP_rggu_tr9EPl3jpPnuXOd5gGP5kQKqFT0ZLXQ36-=s136" style="width:800px;height:400px;" alt="Skaret View">
    </div>
  </div>

  <div data-role="footer">
    <h1>Footer Text</h1>
  </div>
</div> 

</body>
</html>
0 голосов
/ 03 марта 2016

Вот угловая версия LightBox. Просто потрясающе :) 1001 *

Примечание: я поставил этот ответ, поэтому ни одна библиотека Js не была упомянута под тегами.

угловой самозагрузки-Lightbox

<ul ng-controller="GalleryCtrl">
  <li ng-repeat="image in images">
    <a ng-click="openLightboxModal($index)">
      <img ng-src="{{image.thumbUrl}}" class="img-thumbnail">
    </a>
  </li>
</ul>
0 голосов
/ 22 января 2009

Экспериментальный подход без CSS, только с предварительной загрузкой изображений БОНУС! , который работает только в Firefox:

<style>
a.zoom .full { display: none; }
a.zoom:active .thumb { display: none; }
a.zoom:active .full { display: inline; }
</style>

<a class="zoom" href="#">
<img class="thumb" src="thumbnail.png"/>
<img class="full" src="fullsize.png"/>
</a>

Показывает миниатюру по умолчанию. Показывает полноразмерное изображение при нажатии и удерживании кнопки мыши. Возвращается к миниатюре, как только кнопка отпущена. Я ни в коем случае не предлагаю использовать этот метод; это всего лишь демонстрация подхода только для CSS, который [очень] частично решает проблему. С некоторыми настройками z-index + относительной позиции это может работать и в других браузерах.

0 голосов
/ 22 января 2009

Для такой функциональности потребуется некоторый Javascript, но, вероятно, возможно просто использовать CSS (в браузерах, отличных от IE6 и 7).

0 голосов
/ 22 января 2009

Я бы этого не делал - тэг alt существует специально для случаев, когда ваше изображение не отображается. Однако, и это относится ко многим вещам jQuery, атрибут rel очень полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...