【发布时间】:2020-01-05 12:25:38
【问题描述】:
我有下面的图片,我想对从左上角到右下角穿过徽标的线的对角线分割进行动画处理,如下所示。动画会将 X 轴上的图片分开几个像素。
https://i.ibb.co/fDzZ6Sc/Logo.png
到目前为止,我已经取得了一些进展,我两次使用同一张图片并将它们相互重叠并在 X 轴上倾斜。然而,这将图片从右上角到左下角分开。我喜欢它的另一种方式,无法弄清楚。
我也想不出如何将鼠标悬停在整个图片上,以便两边都执行动画。
body { background: gainsboro; }
.pageOption {
overflow: hidden;
position: relative;
margin: 0 auto;
width: 40em; height: 27em;
}
.option, .option img { width: 100%; height: 100%; }
.option {
overflow: hidden;
position: absolute;
/* arctan(27 / 40) = 34.01935deg
* need to skew by 90deg - 34.01935deg = 55.98065deg
*/
transform: skewX(-55.98deg);
}
.option:first-child {
left: -.25em;
transform-origin: 100% 0;
}
.option:last-child {
right: -.25em;
transform-origin: 0 100%;
}
.option img, .option:after {
transform: skewX(55.98deg);
transform-origin: inherit;
}
.option:hover {
left: -.8em;
transition: 1s;
}
<div class='pageOption'>
<a href='#' class='option'>
<img src='https://i.ibb.co/fDzZ6Sc/Logo.png'>
</a>
<a href='#' class='option'>
<img src='https://i.ibb.co/fDzZ6Sc/Logo.png'>
</a>
</div>
基本上我想要发生的事情是在将鼠标悬停在整个图片上时,两侧会从中间分开(从从左上角到右下角的线切割),当你将鼠标移开时,图像一起返回。
【问题讨论】:
-
“但是,这会将图片从右上角到左下角分开。” - 反转倾斜度上的符号,看看会发生什么。 “我也不知道如何将鼠标悬停在整个图片上以使动画在两边都执行。” - 您可以根据当前悬停的第一个链接来设置第二个链接的不同格式,但反之则不然。改为使用父元素的悬停状态。
标签: javascript html css hover skew