【发布时间】:2015-05-04 20:46:36
【问题描述】:
在过去的几天里,我一直在尝试使用 CSS 和 SVG 来尝试实现这种效果。
我有一个菱形图像,当用户将鼠标悬停在它上面时,它会变成一个圆圈,理想情况下,图像应该变成一个块颜色。
一开始我以为我可以使用 SVG 来实现,我设法让 SVG 菱形变形为圆形,但下一步是使用图像/块颜色,我认为蒙版可能是可行的方法!我得到的最接近的是: http://codepen.io/anon/pen/ByaaqE
HTML
<div>
<span></span>
<img src="http://img-fotki.yandex.ru/get/5607/5091629.6b/0_612e6_b9039c0d_M.jpg" alt="" />
</div>
CSS
div {
-webkit-clip-path: circle(100px at center);
-moz-clip-path: circle(100px, 100px, 100px);
clip-path: circle(100px, 100px, 100px);
transition: all 0.3s ease;
width: 200px; height: 300px;
}
div:hover {
-webkit-clip-path: circle(40px at center);
-moz-clip-path: circle(40px, 40px, 40px);
clip-path: circle(40px, 40px, 40px);
}
span {
display: block;
width: 200px; height: 300px;
background-color: red;
position: absolute;
top: 0px;
left: 0px;
z-index: 100;
opacity: 0;
transition: background-color 0.7s ease;
}
div:hover span {
opacity: 1;
}
我可以为圆形制作动画,但是当我尝试将其设为矩形时,它就不起作用了(而且我什至没能看到菱形!)。
我也尝试过使用纯 CSS 方法 - 尽管这会带来一系列问题。我在 img 标签上应用了样式,它按我想要的方式工作,但显然图像是旋转的。当我尝试将图像放入 div 并将图像旋转回正常时,它出现了问题。将鼠标悬停在图像上时,尽管在 DIV 上隐藏了溢出,但它并没有进入圆圈内。
http://codepen.io/anon/pen/jEOMem
它还存在悬停时没有覆盖颜色的问题。
我想知道以前是否有人设法做到这一点,他们是否可以对此有所了解,以及我的最佳选择是什么,因为我的想法已经不多了!
【问题讨论】:
-
钻石形状会很棘手,但也许这会有所帮助:codepen.io/anon/pen/jEOMgG
-
谢谢保罗,这真的很有帮助!用你的笔,这就是我想出的!
标签: html css svg css-shapes