如何在不移动图像的情况下翻转图像

pro*_*nce 7 html javascript css jquery

在下面的示例中,单击徽标,您会看到 - 它被翻转但也被移动
如何在不移动的情况下翻转它?
我也尝试过这个,但没有成功:

.flip{transform:scaleX(-1) translatex(-50%);}
Run Code Online (Sandbox Code Playgroud)

.flip{transform:scaleX(-1) translatex(-50%);}
Run Code Online (Sandbox Code Playgroud)
$('img').on('click', function(){
    $(this).addClass('flip');
 });
Run Code Online (Sandbox Code Playgroud)
.flip{transform:scaleX(-1);}

.wrap{
  position:relative;
  width:50%;
  height:100px;
  background:darkorange;
 }
img{
  position:absolute;
  bottom:0;
  width:140px;
  left:50%;
  transform:translatex(-50%);
 }
Run Code Online (Sandbox Code Playgroud)

Anu*_*ava 6

您还需要将该translate属性包含在.flip类中。

请注意,属性的顺序很重要,例如。scalebeforetranslate和 after 会给你不同的输出:

$('img').on('click', function() {
  $(this).toggleClass('flip');
});
Run Code Online (Sandbox Code Playgroud)
.flip {
  transform: translateX(-50%) scaleX(-1);
}

.wrap {
  position: relative;
  width: 50%;
  height: 100px;
  background: darkorange;
}

img {
  position: absolute;
  bottom: 0;
  width: 140px;
  left: 50%;
  transform: translateX(-50%);
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='wrap'>
  <img src='https://abuena.net/img/logo_01.png' alt='img'>
</div>
Run Code Online (Sandbox Code Playgroud)

  • *请注意,属性的顺序很重要,例如。翻译之前缩放,翻译之后会给你不同的输出:* - 这是非常相关的,谢谢你包括这一点,而不仅仅是“这样做”。 (2认同)
  • 另请注意,“新”变换将替换所有现有的变换属性,它们不是累积的,因此这里需要重新应用原始的 -50%。 (2认同)