【发布时间】:2019-12-18 04:37:37
【问题描述】:
请在此处访问我的网站:
您会看到一个目录项目表。将鼠标悬停在其中一张图像上。您应该会看到图片放大了。
您可能还会注意到图像有点闪烁。当您将鼠标悬停在缩略图的上部时会发生这种情况。
发生这种情况的原因是,您会注意到,放大图像的上边缘位于缩略图图像的中间附近。这意味着当图像放大时,鼠标位于放大图像的正上方。这意味着,只要您移动鼠标,它就会将其检测为 mouseout 事件,这会导致图像再次缩小。但这反过来又会触发放大,因为鼠标仍然悬停在缩略图上。这个结果是一个放大和缩小的循环,当你看到它非常快时,会给你闪烁。
所以我想知道是否有办法强制放大图像的顶部与缩略图图像相同。
悬停事件导致 css 转换,其中要转换的类将图像的位置设置为绝对位置:
img {
transition: width 0;
&:hover {
position: absolute;
z-index: 100;
width: 300px;
border: 1px solid black;
box-shadow: 5px 5px 10px grey;
transition: width .2s linear;
}
}
我会尝试通过将放大图像的 top 属性设置为 0 来调整它,但是使用 position: absolute,这只会导致图像位于屏幕的左上角。我不确定如何计算 CSS 中相对于其包含元素的位置(角度垫表中的 td),所以我不知道如何做到这一点。
任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: css position transition absolute mat-table