Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个div上运行jQuery函数(从img标记获取背景图像,并使用CSS将其应用为节背景)_Jquery_Css_Function - Fatal编程技术网

在多个div上运行jQuery函数(从img标记获取背景图像,并使用CSS将其应用为节背景)

在多个div上运行jQuery函数(从img标记获取背景图像,并使用CSS将其应用为节背景),jquery,css,function,Jquery,Css,Function,我正在尝试获取每个部分的图像src,并使用jQuery将其应用到以CSS作为背景图像属性的部分。我需要获取CMS加载的图像URL并使用CSS将其添加到部分的原因是,我可以使用背景附件属性使每个图像固定,从而创建一个很酷的视差效果 页面的html结构基本上如下所示: <section id="section-1" class="has-background"> <div class="section-background"> <img data-src="

我正在尝试获取每个部分的图像src,并使用jQuery将其应用到以CSS作为背景图像属性的部分。我需要获取CMS加载的图像URL并使用CSS将其添加到部分的原因是,我可以使用背景附件属性使每个图像固定,从而创建一个很酷的视差效果

页面的html结构基本上如下所示:

<section id="section-1" class="has-background">
  <div class="section-background">
    <img data-src="url-1">
  </div>
</section>

<section id="section-2" class="has-background">
  <div class="section-background">
    <img data-src="url-2">
  </div>
</section>

<section id="section-3" class="has-background">
  <div class="section-background">
    <img data-src="url-3">
  </div>
</section> 
因此,我的问题是,如何创建一个函数,从节中获取背景图像,并使用CSS将其应用为背景图像,并且为每个具有背景图像的节执行此操作?

使用
。each()
为选择器匹配的每个元素运行一个代码块:

$('.section background img')。每个(函数(){
var$targetImg=$(this);//当前img
var imgSrc=$targetImg.attr('data-src');
var$parentDiv=$targetImg.closest(“.has background”);
$parentDiv.css(…);
});

我认为你的问题与我的问题有相似的逻辑。

您需要设置脚本/命令应放置的目标。
您可能希望使用
.next()
each()
,或设置
数据目标=“#targetId”
将脚本放在特定元素上。

这是我的帖子:

var imageUrl = $('.section-background img').attr("data-src");
  $('.has-background').css({'background-image': 'url(' + imageUrl + ')', 'background-size': 'cover', 'background-attachment': 'fixed'});