javascript - JS 获取背景图片并显示在灯箱中

标签 javascript

我有一组带有背景图像的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";

}); 

最佳答案

您在galImg中获取背景图像本身,因此您需要直接设置它(它是一个字符串,没有.src属性)。

但是,我们从 getCompulatedStyle 获取的 galImg 的值是一个字符串,如下所示:"url("file:.../Desktop/1.png")"。我们必须删除 url( 部分以及其中的引号 ("..."):

lbImg.src = galImg.slice(4, -1).replace(/"/g, "");

关于javascript - JS 获取背景图片并显示在灯箱中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48134147/

相关文章:

javascript - jQuery 提交需要点击两次才能工作

javascript - 绑定(bind)到 knockout.js 中的类

javascript - 为什么 object.observe 不适用于输入字段的值属性?

javascript - 在 Scala Play Framework View 中使用键检索映射值

javascript - Jsoup 无法从网页中获取完整内容(没有错误/异常,但遗漏了一些内容)

javascript - 如何为 react/redux 创建加载器旋转

javascript - jQuery Live 在一个网站上搜索两次

javascript - Backbone.js 模型中的依赖属性

Javascript自动解析嵌套对象

javascript - 使用 Jquery 定位页面上 Div 的第一次和第二次出现