JS Получить фоновое изображение, а затем отобразить в лайтбокс

1

У меня есть набор div с фоном. Я пытаюсь получить изображение onclick затем отобразить его в лайтбокс. Когда появляется лайтбокс, изображение становится неопределенным. Я могу правильно отобразить URL-адрес изображения через консоль. Я знаю lbImg.src= galImg.src; неверно, но я не уверен, как его исправить.

HTML

<div id="lightbox">
    <span class="closeBTN">&times;</span>

    <img class="lbContent" src="">
 </div>

<div class="imgCon">

</div>

CSS

.imgCon
{
 height: 500px;
 width: 15%;
 min-width: 200px;
 background-image: url(../images/01.jpg);
 background-position: center;
 background-size: auto 500px;
 margin-bottom: 66px;
}

JS

var lightbox = document.querySelector('#lightbox')
    img = document.querySelector('.imgCon')
    span = document.querySelector('.closeBTN')
    lbImg = document.querySelector('.lbContent')

img.onclick = (function(){
    lightbox.style.display = "block";
    var galImg = window.getComputedStyle(this, 
    null).getPropertyValue("background-Image");
    lbImg.src = galImg.src;
    //console.log(galImg);
})

span.onclick = (function(){
    lightbox.style.display = "none";

}); 
  • 0
    что такое "imgCon" ?? Пожалуйста, отправьте полный код
  • 0
    imgcon - это просто контейнер изображений.
Теги:

2 ответа

0
Лучший ответ

Вы сами получаете фоновое изображение в galImg, поэтому вам нужно установить его напрямую (это строка и не имеет свойства .src).

Но значение galImg, которое мы получаем из getComputedStyle, представляет собой строку, например: "url("file:.../Desktop/1.png")". Нам нужно удалить url( часть, а также кавычки ("...") из него:

lbImg.src = galImg.slice(4, -1).replace(/"/g, "");
  • 0
    Это работает, спасибо!
0

Не могли бы вы попробовать lbImg.setAttribute('src', galImg.src).

  • 1
    Это дает мне тот же результат.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню