我有一张图片,每次单击它都想使其旋转180度。这是我尝试的代码:

<img id="showLayers" class="miniToolbarContant" src="../stdicons/GeomindIcons/slide.png"/>


$('#showLayers').click( function() {
    $('#showLayers img').animate({ rotate: 180 });
});


由于某些原因,此代码无法正常工作。有什么想法为什么上面的代码不起作用?

最佳答案

首先请注意,您的问题是因为选择器不正确。它应该是$('#showLayers')而不是$('#showLayers img')-甚至只是$(this),因为您属于点击处理程序的范围。

其次,请注意,您可以通过将CSS用于动画并根据需要简单地在JS中切换类来改善逻辑:



$('#showLayers').click(function() {
  $(this).toggleClass('rotate');
});

#showLayers {
  transition: transform 0.3s;
}

.rotate {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="showLayers" class="miniToolbarContant" src="https://i.imgur.com/J5YLlJvl.png" width="250" />

10-02 19:10