12.03.2017, 16:34
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
Помогите с модульным окном, попап.
Народ, пишу сайт на подобие "Virink", что-то вроде соц.сети для художников. Столкнулся с такой проблемой: нужно при нажатии на картинку, выводить ее в большом размере в модульном окне, (пример - вк)
с блоком комментариев справа. Вся фишка в том, что картинки у меня выводятся через background для блока, поэтому нужно через функцию как-то вытаскивать ее, точнее путь на нее.
Ещё нужно предусмотреть то, что при клике на определенное изображение оно и выводится, их множество. В js чайник, уже второй день в статьях роюсь и все никак.
|
|
12.03.2017, 17:52
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
Ребят, ну неужели никто не знает как это реализовать???
|
|
12.03.2017, 19:08
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
Так попробуйте:
var thumbs = document.getElementsByClassName("us_img__cnt");
for (var i = 0; i < thumbs.length; i++) {
thumbs[i].onmousedown = function () {
var src = this.style.backgroundImage.split('"')[1];
alert( src );
};
}
По клику на картинку выводит в алерте ссылку на неё?
Если да, то всё нормально. Подключайте любой скрипт для просмотра изображений, в сети их полно. В переменной src ссылка на картинку.
|
|
12.03.2017, 19:18
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
Нет, не ссылку. Смотрите, вот код html
<a href="#" class="link_opn_img">
<div class="us_img__cnt" data-original="../img/cnt4.png" style="display: block; background-image: url('https://htmler.ru/wp-content/uploads/2015/06/Vsplyivayushhee-okno-na-JQuery-900x534.png');background-size: cover;"></div>
</a>
<div class="hovr__cont">
<a href="#" class="wp__link_ps" style="display: block; height: 100%;">
<div class="wrp__posit">
<i class="fa fa-plus-square-o" aria-hidden="true"></i>
<div class="mod__hvr__icon">
<div class="wrp__detail">
<i class="fa fa-heart" aria-hidden="true"></i>
<i class="fa fa-comment" aria-hidden="true"></i>
<i class="fa fa-share-square" aria-hidden="true"></i>
</div>
</div>
</div>
</a>
Вот мне нужно чтоб при нажатии на картинку, она открывалась во весь экран. Дело в том, как получить ее src из backgroud"а у блока? Т.е каждая картинка идёт как фон у блока, и мне нужно чтоб при нажатии на этот блок, вытаскивалось изображение из его фона. Как это сделать?
|
|
12.03.2017, 19:38
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
А что выводит? Даже интересно стало.
|
|
12.03.2017, 19:50
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
exec,
Вставил код, при клике на блок у которой фоном зада картинка - ничего не происходит. Вот исходники:
<div class="col-md-3 col-xs-6 imp__fl">
<a href="#" class="link_opn_img">
<div class="us_img__cnt" data-original="../img/cnt4.png" style="display: block; background-image: url('../img/cnt12.png');background-size: cover;"></div>
</a>
<div class="hovr__cont">
<a href="#" class="wp__link_ps" style="display: block; height: 100%;">
<div class="wrp__posit">
<i class="fa fa-plus-square-o" aria-hidden="true"></i>
<div class="mod__hvr__icon">
<div class="wrp__detail">
<i class="fa fa-heart" aria-hidden="true"></i>
<i class="fa fa-comment" aria-hidden="true"></i>
<i class="fa fa-share-square" aria-hidden="true"></i>
</div>
</div>
</div>
</a>
</div>
</div>
$(".us_img__cnt").click(function () {
var thumbs = document.getElementsByClassName("us_img__cnt");
for (var i = 0; i < thumbs.length; i++) {
thumbs[i].onmousedown = function () {
var src = this.style.backgroundImage.split('"')[1];
alert( src );
};
}
});
|
|
12.03.2017, 20:26
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
А зачем вы обернули код в .click() ?
Если используете jQuery, то можно написать компактнее:
$(".us_img__cnt").click(function () {
var src = this.style.backgroundImage.split('"')[1];
alert(src);
});
|
|
12.03.2017, 20:35
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
exec,
вставил данный код, все отработало. Но, выводит значение "undefined".
И, я вам полную версию скинул в личные сообщения, не могли б вы просмотреть?
|
|
12.03.2017, 20:47
|
Профессор
|
|
Регистрация: 21.01.2010
Сообщений: 1,022
|
|
А если так?
$(".us_img__cnt").click(function () {
var src = this.style.backgroundImage;
alert(src);
});
что выводит?
|
|
12.03.2017, 21:05
|
Новичок на форуме
|
|
Регистрация: 12.03.2017
Сообщений: 7
|
|
exec,
так выводится но только пустое значение, смотрите. Есть блок, в нем ещё два блока.
1-й - это ссылка, а в ней блок с картинкой фоновой.
2-й блок - это ховер, который появляется при наведении на обёртку для этих двух блоков.
Вот мне нужно сделать так, чтоб при нажатии на второй блок под классом "hovr__cont" у меня функция брала src из блока "us_img__cnt"
в сообщения я вам кинул полный код, вот ссылка на ресурс где выложен данный код: https://jsfiddle.net/ns6xtxz7/7/
|
|
|
|