javascript - 基于类名的动画元素(许多项目共享同一个类)

标签 javascript jquery jquery-animate

我有一个在线商店,我需要添加一个动画,以便在用户单击“添加到购物车”时将产品图像移动到购物车框,问题是每当我单击“添加到购物车”时,动画都会适用于所有产品。

HTML(这是一个项目的 HTML,所有其他项目都相同):

$(document).ready(function() {
  $(".addToCart").click(function() {
    $(".proImage").animate({
      left: '250px',
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="items">
  <img src="#" class="proImage">
  <a href="#" class="btnorange addToCart">Add to Cart</a>
</div>

如何让动画只应用于选定的产品。

最佳答案

你应该使用 this 关键字和 parent() 方法到父级并选择相关的 img :

$(this).parent().find(".proImage").animate({
    left: '250px',
});

你也可以像这样使用closest():

$(this).closest('div').find(".proImage").animate({
    left: '250px',
});

在您的情况下,使用 prev() 方法将起作用:

$(this).prev(".proImage").animate({
  left: '250px',
});

$(document).ready(function() {
  $(".addToCart").click(function(e) {
    e.preventDefault();

    $(this).prev(".proImage").animate({
      left: '250px',
    });
  });
});
.proImage {
  position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="items">
  <img src="https://png.icons8.com/ios/2x/product.png" class="proImage">
  <a href="#" class="btnorange addToCart">Add to Cart</a>
</div>

<div class="items">
  <img src="https://png.icons8.com/ios/2x/product.png" class="proImage">
  <a href="#" class="btnorange addToCart">Add to Cart</a>
</div>

<div class="items">
  <img src="https://png.icons8.com/ios/2x/product.png" class="proImage">
  <a href="#" class="btnorange addToCart">Add to Cart</a>
</div>

关于javascript - 基于类名的动画元素(许多项目共享同一个类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52407810/

相关文章:

jquery - 在某些类中添加 <div> 的最后一个子元素

javascript - jquery按属性值过滤xml数据

jquery - 使用 jQuery 的 animate() 未捕获语法错误

Javascript 目录中的随机图像

javascript - 单输入表单提交 GET 至/route/:attribute

javascript - 如何使用 jQuery .html() 保留换行符和转义斜线

javascript - 如何在 HTML 中使用外部 Javascript 文件中的函数?

javascript - 动画技能栏

javascript - jquery "animate"变量值

javascript - 如何使用jquery获取最后输入的数字