2014-11-16 26 views
0

JSFIDDLE DEMO抓取特定图像时点击图片放大图像

HTML

<div class="col-4.col-xs-12 col-sm-6 col-md-3"> 
    <div class="ratio-14-16"> 
     <div class="productImg" style="background-image:url('http://paperbotz.files.wordpress.com/2010/11/hello_kitty001.png'); background-position: center center; background-repeat: no-repeat; background-size: cover;width:200px; height: 200px"> 
     </div> 
     <div class="info uppercase text-center"> 
     <span data-image>View Image</span> 
     </div> 
    </div> 
    <div class="details">Test 2</div> 
<div class="img-panel-view.cly-abs-center" style="background-size: cover; background-repeat: no-repeat; backgroung-position: center center"></div> 

JQuery的

$('[data-image]').on('click', function(e){ 
    e.preventDefault(); 
    var imgPartBg = $(this).closest().css('background-image'); 
    alert(imgPartBg); 

    $('.img-panel-view').css('background-image', 'url(' + bg + ')'); 
}); 

会有动态图像画廊,当点击其中一个,它应该抓取特定div中的特定背景图像以在叠加层上完整显示。他们将拥有完整的绝对路径。 Replace()将不会被使用。

尝试使用最接近的()或兄弟姐妹('。productImg')并返回undefined。 如何在点击特定图片时抓取背景图片?

更新

还有一个类似的问题。如何抓取细节?试图接近,分组,父母或兄弟姐妹,并没有抓住细节DIV

回答

1
$('[data-image]').on('click', function(e){ 
    e.preventDefault(); 
    var imgPartBg = $(this).parent().prev('div.productImg').css('background-image'), 
     path = imgPartBg.replace('url(','').replace(')',''); 

    $('.img-panel-view').css('background-image', 'url(' + path + ')'); 
}); 
+0

感谢您的快速帮助。但经过测试,它返回undefined,替换不是这样的属性。看到你的答案小提琴 - http://jsfiddle.net/1muwoftt/1/ – joe

+0

@joe回答编辑,请现在检查。 – thecodeparadox

+0

我试过父母()。兄弟姐妹('。productImg'),它似乎在工作 – joe

0

试试这个检索“背景图片” http://jsfiddle.net/76oshjrk/

HTML稍微更新的URL:

<span id="data-image">View Image</span>  <!-- added id tag --> 

JQuery的略作修改:

$('.productImg').on('click', function(e){ 
    e.preventDefault(); 
    var src = $(this).css('background-image');  //get "background-image" url 
    var myURL = src.slice(4,src.length-1);   //remove "url(" and ")" 
    $('#data-image').html("url: " +myURL);   //full url of "background-image" 

}); 
+0

检查myURL警报,它不显示任何路径。感谢您的帮助,虽然 – joe

+0

乔,它似乎工作在jsFiddle,一旦你点击图片,请参阅http://jsfiddle.net/76oshjrk/1/我添加警报(myURL) –

+0

哦,不得不点击图像本身。不是文字。谢谢 – joe