html - 如何防止我的 CSS 变换(旋转和倾斜原点)向右移动几个像素?

标签 html css css-transforms

在下面的示例中,当您单击 div 时,它会旋转和倾斜,但看起来位置在此转换过程中向右移动了几个像素。

有没有办法强制它在过渡期间保持在左侧?我玩过 origin,但没能恰到好处:

$('div.book').click(function() {
  $(this).toggleClass('open');
});
div.bg {
  background-color: #00adef;
  display: inline-block
}

.book {
  transition: all 2s;
  width: 145px;
  height: 200px;
  background-color: #333;
  -webkit-origin: left;
}

.book.open {
  -webkit-transform: rotateY(-90deg) skewY(-45deg);
  -webkit-transform-origin: 0 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='bg'>
  <div class='book'>
  </div>
</div>

最佳答案

您在 -webkit-transform-origin 中缺少“转换”!

$('div.book').click(function() {
  $(this).toggleClass('open');
});
div.bg {
  background-color: #00adef;
  display: inline-block
}

.book {
  transition: all 2s;
  width: 145px;
  height: 200px;
  background-color: #333;
  -webkit-transform-origin: left;
}

.book.open {
  -webkit-transform: rotateY(-90deg) skewY(-45deg);
  -webkit-transform-origin: left;
  transform-origin: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='bg'>
  <div class='book'>
  </div>
</div>

关于html - 如何防止我的 CSS 变换(旋转和倾斜原点)向右移动几个像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996111/

相关文章:

css - 修复 CSS3 旋转后文本的脆化/锯齿状渲染

css - 使用 CSS 水平反射(reflect)一个字母

javascript - 动态添加下拉菜单并排除所选选项

html - 指向特定 whatsapp 联系人的 Web 链接

javascript - ajax 内容和移动设备上的 CSS 悬停效果

html - 引用标签不会在 Chrome 中使文本变为斜体

html - 垫树水平滚动。如何添加?

javascript - jQuery :disabled selector not working properly?

javascript - 如何在所有 api 响应之前以 Angular 7 在页面加载中显示加载指示器?

html - 如何进行 2 个链式变换,第一个有过渡,后面没有过渡?