【发布时间】:2017-12-25 14:32:15
【问题描述】:
我找不到在 CSS 中仅转换一种转换的方法。
我有一堆图像(手臂、腿、头等),在加载时需要对它们应用“变换:翻译”,以便在我做任何其他事情之前它们位于正确的位置。
然后我想在悬停时仅在transform: rotate(20deg) 上做一个转换,比如说一个手臂。问题是,在转换时,它会随着旋转重复初始平移,但我只希望它在悬停时进行旋转。我怎样才能让它只转换一个旋转?
在下面的示例代码中,您可以看到我使用transform: translate 确保三角形最初接触到另一个形状。然后我在悬停时执行transform: rotate。它可以工作,但它也可以再次使用translate。
(我想如果图像可以放置在正确的位置而不需要transform: translate,那也许可以解决它,但我也不知道该怎么做。如果可以的话会更好将transition 隔离为仅transform: rotate。)
/* INITIAL PLACING OF THE IMAGES IN THEIR RIGHT PLACES */
img#Arm {
position: relative;
transform: translate(220px, 100px);
}
img#Body {
position: relative;
transform: translate(150px, 180px);
}
/* END OF PLACING OF THE IMAGES IN THEIR RIGHT PLACES */
/* THESE ARE THE TRANSFORMATIONS ON HOVER */
img#Arm {
transform-origin: 200px 200px;
transition: 1s ease-in-out;
}
section:hover img#Arm {
transform: rotate(25deg);
}
/* END OF TRANSFORMATIONS ON HOVER */
/* THIS IS TO KEEP THE LOGO PARTS GROUPED TOGETHER DESPITE WINDOW CHANGING RESOLUTIONS */
section.wrapper {
margin: 0 auto;
/* this keeps the logo centered on the page */
min-width: 800px;
/* Minimum width of your wrapper element */
max-width: 800px;
min-height: 800px;
max-height: 800px;
}
<section class="wrapper">
<img id="Arm" src="https://i.stack.imgur.com/yCC87.png" />
<img id="Body" src="https://i.stack.imgur.com/mmzDM.png" />
</section>
【问题讨论】:
-
你能修复图片的链接吗?到目前为止,它们是相对的,所以我们看不到它们。
-
我想用网上找到的图片展示一个更简单的例子可能会更好地展示自己,所以你们也可以看到图片。我会尽快尝试编辑代码。
-
这可能是这个问题的重复:stackoverflow.com/questions/24120132/…
-
我冒犯了,我用链接图像重新编写了示例,并使其更易于演示。您可以看到我使用 transform: translate 确保三角形最初接触到另一个形状。然后我做一个变换:悬停旋转。我工作了,但它也会再次翻译。
-
@PolarisTLX 我仍然不太明白你想要实现什么,但是,你可以在
:hover上使用translate3d来保留你之前设置的任何翻译属性@987654322 @
标签: css css-transitions css-transforms