Как в фильтр выборки по атрибуту занести переменную?
Вложений: 1
Можно ли как-нибудь в фильтр по значению атрибута src занести переменную:
$('.big-img img[src = 'переменная']') Я пытаюсь сделать слайдер в котором слайды переключаются путем клика по миниатюре, завернутой в ссылку на большую картинку путем изменения z-index у картинок (одна перекрывает другую поочередно). Для этого выбираю картинку у которой src соответствует href ссылки с миниатюрой. href заношу в переменную и подставляю на место значения атрибута в фильтре выборки. Но падла не работает. Код ниже, также прикрепил к теме архив с версткой и скриптом там наглядно все видно. $(document).ready(function() { $('.mini-images a').click(function(eventObgect) { /*в переменную hreflink заносим значение атрибута href ссылки с миникартинкой, по которой кликнули в переменную zind заносим значение свойства z-index большой картинки, у которой атрибут src равен переменной hreflink. Не работает сука. когда хрефлинк в кавычки заношу ошибка получается*/ var hreflink = $(this).attr('href'); var zind = $('.big-img img[src = hreflink]').css('z-index'); /*для большой картинки, у которой атрибут src равен переменной hreflink увеличиваем значение z-index. Тоже не работает*/ $('.big-img img[src = hreflink]').css('z-index',zind + 1); eventObgect.preventDefault(); }); }); Верстка: <div class="slaider"> <div class="big-img"> <img src="images/tachka1.jpg" alt="tachka1" title="tachka"/> <img src="images/tachka2.jpg" alt="tachka1" title="tachka"/> <img src="images/tachka3.jpg" alt="tachka1" title="tachka"/> </div> <div class="mini-images"> <div class="prev-img"><a href="images/tachka1.jpg"><img src="images/tachka1mini.jpg" alt="tachka1" title="tachka"/></a></div> <div class="prev-img"><a href="images/tachka2.jpg"><img src="images/tachka2mini.jpg" alt="tachka2" title="tachka2"/></a></div> <div class="prev-img"><a href="images/tachka3.jpg"><img src="images/tachka3mini.jpg" alt="tachka3" title="tachka3"/></a></div> </div> </div> стили .big-img{ background: url(../images/loading_100x100.gif) center 150px no-repeat; height: 350px; } .big-img img{ position: absolute; z-index: 1; } .big-img, .big-img img{ width: 456px; } .prev-img{ position: relative; float: left; display: block; width: 150px; height: 113px; border: 1px solid #0F0; } :help: :help: :help: :help: :help: |
$(document).ready(function() { $('.mini-images a').click(function(eventObject) { var hrefLink = $(this).attr('href'); var bigImg = $('.big-img img').attr('src', hrefLink); bigImg.css('z-index', $('.big-img img').css('z-index')+1); eventObject.preventDefault(); }); }); |
И вообще ... что вы за галерею делаете....может готовый плагин использовать ?
|
Спасибо братан
|
Не чувак, хочу разобраться и чтоб кода немного было. Нахер плагины.
Только вопрос - в этом скрипте он не станет ли каждый раз по новому картинку подгружать, а то там каждый раз src меняется? Я z-index для того и меняю, чтобы не доставал каждый раз картинки с сервера, а сразу все загрузил и просто их поверх друг друга показывал. |
dwarf,
Бро, твой вариант не подходит - тут просто меняется атрибут src сразу у всех больших картинок. Каждый раз заново грузятся. Не то. |
tanto39,:cray:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .big-img{ background: url(../images/loading_100x100.gif) center 150px no-repeat; height: 350px; } .big-img img{ position: absolute; z-index: 1; } .big-img, .big-img img{ width: 456px; } .prev-img{ position: relative; float: left; display: block; width: 150px; height: 113px; border: 1px solid #0F0; } </style> <script type='text/javascript' src='http://code.jquery.com/jquery-2.1.0.js'></script> <script> $(function() { var a = $('.mini-images a'), bigImg = $('.big-img img'), indx = 0; a.click(function(event) { var indx = a.index(this) bigImg.css({'z-index': '-1'} ).eq(indx).css({'z-index': '10'} ); event.preventDefault(); }).eq(indx).click(); }); </script> </head> <body> <div class="slaider"> <div class="big-img"> <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-lg.jpg" alt="tachka1" title="tachka"/> <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-lg.jpg" alt="tachka1" title="tachka"/> <img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-lg.jpg" alt="tachka1" title="tachka"/> </div> <div class="mini-images"> <div class="prev-img"><a href="images/tachka1.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img5-thumb.jpg" alt="tachka1" title="tachka"/></a></div> <div class="prev-img"><a href="images/tachka2.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img4-thumb.jpg" alt="tachka2" title="tachka2"/></a></div> <div class="prev-img"><a href="images/tachka3.jpg"><img src="http://learn.javascript.ru/files/tutorial/browser/events/gallery/img3-thumb.jpg" alt="tachka3" title="tachka3"/></a></div> </div> </div> </body> </html> |
рони,
Это круто, конечно. Я так понял, что он ищет совпадение индекса нажатой ссылки с индексом большой картинки, но не совсем понятно, зачем в конце после всего еще это: }).eq(indx).click(); И без этого работает, не понимаю что это, зачем |
Цитата:
|
рони,
Ну ты мозг, мужик, спасибо А я через first-of-type делал в css |
Часовой пояс GMT +3, время: 18:07. |