при нажатии на 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> |
Цитата:
|
fancybox + json Oткрыть картинку большего размера по клику на маленькую
:write:
<!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> |
А нафиг генерить разметку скриптом? Никаких преимуществ, только недостатки! Не <div>, а <a>.
|
Цитата:
Цитата:
поставил <а> ... danik.js, считает что треба. |
По поводу того как должно открываться - новый div перекрывающий остальные и его можно закрыть на крестик, вот пример http://www.cherinfo.ru/news/71057
|
Цитата:
<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> И всего делов то. |
:write: fancybox добавлен смотреть 3 пост
|
Цитата:
|
Да блядь че за костыли? Почему нельзя на серваке генерить разметку? Сервак умеет ченить? PHP полюбому умеет, так ведь? Так в чем проблема?
|
Цитата:
|
Да просто же - noscript, индексация поисковиками (хотя это мало кому нужно). А еще, если не вкурсе, картинки из <img> в браузере сканируются специальным пресканером и начинают подгружаться задолго до полной загрузки страницы. Но вам, создателям тормозных кривых сайтов, откуда такие детали то знать :D
|
Вот седня зашел через мобилу на сайт системы Контакт, посмотреть ближайшие пункты. Без js вообще ниче не работает. Даже не выдает алерта что нужно включить js. Включил js. Страничка попыжилась, я с трудом указал адрес, с периодическими подтормаживаниями в несколько секунд, сайт тужился тужился и в итоге браузер вообще упал. До этого я не жаловался, браузер не припомню чтоб вылетал. Ну извините, напишите тогда на сайте: заходить только с девайса не хуже Galaxy S5. А ведь контора занимается денежными переводами, а не вязанием веников. Индусы криворукие.
Ну давайте товарищи, пополняйте их ряды) |
danik.js,
если json это json -- то зачем серверу посылать разметку - чтобы парсить и вытаскивать нужные элементы и вставлять на страницу, не лучше ли их сгенерировать на месте и сократить трафик, что так что эдак поисковики идут лесом про эти картинки или ты предлагаешь вместо json перезагружать страницу полностью? откуда такая нелюбовь к скриптам, когда ты в них прекрасно разбираешься..? |
Часовой пояс GMT +3, время: 22:30. |