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
单击图像以使用JQuery更改DIV中背景的位置_Jquery_Html_Css - Fatal编程技术网

单击图像以使用JQuery更改DIV中背景的位置

单击图像以使用JQuery更改DIV中背景的位置,jquery,html,css,Jquery,Html,Css,我试着自己建造这个,但就是不能让它工作 我想要实现的是一行图像,如果单击它们,它们只是移动div的背景位置 我不知道为什么我不能让这么简单的东西工作。这是HTML <div class="target"></div> <a href="#"><img src="01_thumb.jpg" class="thumb"></a><a href="#"><img src="02_thumb.jpg" class="thumb

我试着自己建造这个,但就是不能让它工作

我想要实现的是一行图像,如果单击它们,它们只是移动div的背景位置

我不知道为什么我不能让这么简单的东西工作。这是HTML

<div class="target"></div>
<a href="#"><img src="01_thumb.jpg" class="thumb"></a><a href="#"><img src="02_thumb.jpg" class="thumb"></a><a href="#"><img src="03_thumb.jpg" class="thumb"></a>
您将获得单击的定位点(如果它们不是其父元素中的唯一元素,则进行调整)的if值,并将该值乘以以更改
。目标
背景位置,如下所示:

$("a:has(img.thumb)").click(function(e) {
  $(".target").css("background-position", -$(this).index()*240 + "px 0px");
  e.preventDefault(); //prevent navigating to the # href
});

,如果有许多
.item
元素,请使用
$(this).最近的(“.item”)。查找(“.target”)
而不是
$(.target”)

你好,尼克,这不是我想要的,谢谢。我只需要在单击链接时移动div的背景位置。链接不在div内部或与之相关。@rage-链接在哪里?如果只有一个
,您只需用
$(.taget”)
替换
$(this).closest(“a”).prevAll(.taget:first”)
,以上内容仍然适用。另外,您提到了位置,但问题中没有涉及到它,
背景位置
是否确实受到影响?如果是这样,每个链接应该做什么?嗨,尼克,每个链接只是将.target的背景位置x移动240像素。链接1是0,然后是240,然后是480@rage-答案已更新,请查看这是否是您想要的。您可以将
.css()
更改为
.animate()
,以获得转换。
$("a:has(img.thumb)").click(function(e) {
  $(".target").css("background-position", -$(this).index()*240 + "px 0px");
  e.preventDefault(); //prevent navigating to the # href
});