如何复制图像并将其添加为父项背景图像?

时间:2017-01-11 08:26:44

标签: jquery html css

我正在尝试从图像中复制src并将其添加到其直接的父背景图像中。

例如,这是我的html

<div class="win__image">
    <div class="field-item even">
        <img data-original="https://davecross.files.wordpress.com/2011/01/pale-blue-dot.jpg" class="img-responsive" src="https://davecross.files.wordpress.com/2011/01/pale-blue-dot.jpg"
            width="960" height="620" />
    </div>
</div>

并且,我正在尝试做类似下面的事情

var $winImage = $('.win__image');

if ($winImage.length > 0) {
    $winImage.find('img').css('opacity', '0');
    $('.win__image .field-item').css({
        'background-size': 'cover',
        'background-position': 'center center',
        'background-repeat': 'no-repeat',
        'width': '960px',
        'height': '620px',
        'background-image': 'url("' + $winImage.find('img').src('data-original') + '")'
    });
}

示例链接: http://codepen.io/hellouniverse/pen/wgMEMp

现在,首先不会复制图像。它说&#34; undefined&#34;在图像背景url.Also,如何获得它的直接父母?

4 个答案:

答案 0 :(得分:3)

你获得winImageSrc的方式有一个小错误:

var $winImage = $('.win__image');
var $winImageSrc = $winImage.find('img').data('original');
                                         ^^^^^^^^^^^^^^^^

if ($winImage.length > 0) {
    $winImage.find('img').css('opacity', '0');
    $('.win__image .field-item').css({
        'background-size': 'cover',
        'background-position': 'center center',
        'background-repeat': 'no-repeat',
        'width': '960px',
        'height': '620px',
        'background-image': 'url("' + $winImageSrc + '")'
    });
}

修改:在第一个解决方案中,我更换了

$('.win__image .field-item').css({

$(winImage).parent().css({

然后我意识到这不是你想要做的。无论如何,请考虑使用parent()来获取元素的直接父级。

答案 1 :(得分:2)

您的代码中存在一些syntex问题,您可以使用以下代码:

var $winImage = $('.win__image');

if ($winImage.length > 0) {
    $winImage.find('img').css('opacity', '0');
    $('.win__image .field-item').css({
        'background-size': 'cover',
        'background-position': 'center center',
        'background-repeat': 'no-repeat',
        'width': '960px',
        'height': '620px',
        'background-image': 'url("' + $winImage.find('img').attr('data-original') + '")'
});

}

答案 2 :(得分:0)

更改

\n

对此:

$winImage.find('img').src('data-original')

答案 3 :(得分:0)

只更换代码正在运行的行...

$winImage.find('img').attr('data-original');