【发布时间】:2017-09-17 06:02:21
【问题描述】:
我的博客文章包含一组悬停时放大的图像。我的问题是,当我放大元素并且它与页面渲染顺序中稍后的其他图像重叠时,下一个图像位于放大后的图像之上。
阻止这种情况的简单方法是在 :hover 伪选择器上提供某种 z-index。但是当我停止悬停图像之后,我遇到了非常讨厌的问题,然后下一个图像在它上面停留了几分之一秒。
您可以在this imgur album 或jsfiddle 上查看行为(悬停第一张图片)
简而言之,我有以下 CSS 用于悬停效果:
.photo-exp
{
position: relative;
transition: all .4s ease-in-out;
/* some properties deleted which have no connection to hovering effect */
}
.photo-exp:hover
{
transform: scale(1.7);
z-index : 10;
}
使用 javascript 和 setTimeout 函数很容易产生相同的效果。
但我想避免使用 javascript 解决方案,并有一些 CSS 解决方法,它会在悬停结束后及时改变 z-index。
我尝试了 CSS 过渡,但它不起作用
我试图编辑this snippet,但我无法让它以我想要的方式工作。
【问题讨论】:
-
通过阅读 "CSS 解决方法将在悬停结束后及时改变 z-index" 想象你手里拿着两种颜色的东西,这绝对不清楚你想要什么纸,一红一蓝。除了你不能在物理上使一个通过另一个 - 现在,你能解释一下想要的魔法效果吗?
-
@RokoC.Buljan 他所说的内容比 jsfiddle 更清楚。
-
我想要的行为是让z-index在悬停后恢复正常,过渡效果会消失。所以在我的图像恢复正常大小并且没有悬停效果之后。
-
纯 css 解决方案可能很困难。在悬停物理结束后保持悬停属性一段时间是一个经典问题!
-
硬编码对话框的 z 索引/放大 img 高。打开和关闭对话框/缩放类。应该避免眨眼。