Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2014, 02:33
Новичок на форуме
Отправить личное сообщение для renegade Посмотреть профиль Найти все сообщения от renegade
 
Регистрация: 10.12.2014
Сообщений: 2

при нажатии на div открыть картинку большего размера
В json массиве хранятся url маленьких и больших картинок. При нажатии на маленький div нужно открыть такую же картинку, но большего размера. Вопрос в следующем как сделать чтобы по клику на div с маленькой картинкой, открывалась большая картинка?
<html>
    <head>
        <title> json </title>
         <meta charset="windows-1251">
         <script type ="text/javascript" src='jquery-2.1.1.min.js'> </script>
         <script type="text/javascript">
             $(function () {
                 var json = {
                     fotos: [
                         {
                             "title": "Картинка 1",
                             "big_url": "big_url1",
                             "thumb_url": "thumb_url1"
                         },
                         {
                             "title": "Картинка 2",
                             "big_url": "big_url2",
                             "thumb_url": "thumb_url2"
                         }
                     ]
                 }
                 for (i = 0; i < json.fotos.length; i++) {
                     var n = "thumb_url"
                     var str = "<img src='" + json.fotos[i].thumb_url + "'>";
                     var divid = "#d00" + (i + 1);
                     console.log(divid);
                     $(divid).append(str);
                 }
             });
        </script>
        <style>
            .divs
            {
                width: 100px;
                height: 100px;
                border: 5px solid #f00;
                background: #fff;
                margin: 20px;
                position: absolute;
            }
            #d001 
            {
                left: 0;
                top: 0;                
            }
            #d002 
            {
                left: 115px;
                top: 0;
            }         
        </style>
   </head>
    <body>       
        <div id ="d001" class='divs'>  
        </div>
        <div id ="d002" class='divs'> 
        </div>      
   </body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2014, 02:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от renegade
открывалась большая картинка?
в место маленькой? или как?
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2014, 04:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

fancybox + json Oткрыть картинку большего размера по клику на маленькую

<!DOCTYPE html>

<html>
<head>
  <title>json</title>
  <meta charset="utf-8">
  <style>
  body{
    background-color:#0000AD;
  }

  .divs{
    position:relative;
    width:100px;
    height:100px;
    border:5px solid #f00;
    background:#fff;
    margin:20px;
    display:inline-table;
  }

  .divs img{
    cursor:pointer;
    display:block;
  }
  </style>
  <link rel="stylesheet" href="http://fancyapps.com/fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script type="text/javascript" src="http://fancyapps.com/fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>
  <script type="text/javascript">
          $(function() {
     var json = {
         fotos: [{
             "title": "Картинка 1",
             "big_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg",
             "thumb_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg"
         }, {
             "title": "Картинка 2",
             "big_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg",
             "thumb_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-thumb.jpg"
         }]
     }
     $.each(json.fotos, function(indx, el) {
         var a = $("<a/>", {
                 "class": "divs fancybox",
                 "attr" : {"title" : el.title, "rel" : "group"},
                 "href" : el.big_url
             }),
         img = $("<img/>", {
             "src": el.thumb_url,
             "alt" :  el.title
             });
         a.appendTo('body');
         img.appendTo(a)
     });
    $(".fancybox").fancybox()
  });
  </script>

</head>
<body>
</body>
</html>

Последний раз редактировалось рони, 22.12.2014 в 11:48.
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2014, 05:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А нафиг генерить разметку скриптом? Никаких преимуществ, только недостатки! Не <div>, а <a>.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2014, 05:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от danik.js
А нафиг генерить разметку скриптом?
это не понял, а как ещё ответ с сервера вывести?
Сообщение от danik.js
Не <div>, а <a>.
может оно по каким-то мне неведомым правилам и верно , но див проще в плане разметки и не требует отмены действий по по умолчанию.
поставил <а> ... danik.js, считает что треба.
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2014, 10:07
Новичок на форуме
Отправить личное сообщение для renegade Посмотреть профиль Найти все сообщения от renegade
 
Регистрация: 10.12.2014
Сообщений: 2

По поводу того как должно открываться - новый div перекрывающий остальные и его можно закрыть на крестик, вот пример http://www.cherinfo.ru/news/71057
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2014, 10:17
Интересующийся
Посмотреть профиль Найти все сообщения от moskitos80
 
Регистрация: 11.08.2013
Сообщений: 28

Сообщение от renegade Посмотреть сообщение
По поводу того как должно открываться - новый div перекрывающий остальные и его можно закрыть на крестик, вот пример http://www.cherinfo.ru/news/71057
Так я извиняюсь там fancybox используется. Fancybox - у для работы понадобится такой html-каркас:

<a class="fancybox" rel="group" href="big_image_1.jpg"><img src="small_image_1.jpg" alt="" /></a>
<a class="fancybox" rel="group" href="big_image_2.jpg"><img src="small_image_2.jpg" alt="" /></a>


Вам, уважаемый renegade требуется подключить fancybox и написать код, который всего лишь сгенерит из Ваших входных данных:

...
fotos: [{
             "title": "Картинка 1",
             "big_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg",
             "thumb_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg"
         }, {
             "title": "Картинка 2",
             "big_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg",
             "thumb_url": "http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-thumb.jpg"
         }]
...


такую разметку:

<a class="fancybox" rel="group" href="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg">
    <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg" alt="" />
</a>
<a class="fancybox" rel="group" href="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg">
    <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-thumb.jpg" alt="" /></a>


И всего делов то.
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2014, 11:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

fancybox добавлен смотреть 3 пост
Ответить с цитированием
  #9 (permalink)  
Старый 22.12.2014, 11:52
Интересующийся
Посмотреть профиль Найти все сообщения от moskitos80
 
Регистрация: 11.08.2013
Сообщений: 28

Сообщение от рони Посмотреть сообщение
fancybox добавлен смотреть 3 пост
тем более
Ответить с цитированием
  #10 (permalink)  
Старый 22.12.2014, 13:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Да блядь че за костыли? Почему нельзя на серваке генерить разметку? Сервак умеет ченить? PHP полюбому умеет, так ведь? Так в чем проблема?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять картинку у одной из img, а потом при нажатии на другой img, вернуть обратно. megasan84 Events/DOM/Window 16 26.10.2014 13:22
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
при нажатии на раздел меню поворачивается маркер Сергей545 Элементы интерфейса 5 08.12.2013 22:15
при изменении размера div элементы съезжают gallyamov jQuery 5 22.08.2012 10:24
Отображение ссылок при нажатии на картинку deNSe_01 Events/DOM/Window 5 27.06.2011 10:39