【发布时间】:2021-11-05 06:09:34
【问题描述】:
我想使用反应钩子为我的画廊创建某种悬停动画,但到目前为止我还没有成功。
目标说明:
我想实现,当我将鼠标悬停在具有叠加层的图像上时 - 它会首先在图像下显示文本,一段时间后文本会消失并且图像将删除叠加层 - 基本上它会亮起起来。
到目前为止我做了什么:
我在图像上创建了一些叠加层,在 CSS 的帮助下悬停时会消失。
<Col
xs={6}
className="img-wrap"
onClick={() => setSelectedData(post)}
onMouseEnter={handleMouseEnter}
>
<img src={post.image} alt="random" />
<div className="overlay">
<div className="text">{post.name}</div>
</div>
{hover && selectedData === post && <h1>HOVER </h1>}
</Col>
还有 CSS:
.img-wrap {
position: relative;
}
image {
display: block;
width: 100%;
height: auto;
}
.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 210px;
opacity: 0.5;
transition: 0.5s ease;
background-color: black;
}
.img-wrap:hover .overlay {
opacity: 0;
}
.text {
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
}
这很好用,但是悬停效果会立即触发,而不是像我希望的那样一段时间,并且悬停时不会显示文本而是onClick。
我认为最好是使用 setTime() 函数,但我不知道如何将它与 css 连接。'
这是我的沙盒:
https://codesandbox.io/s/inspiring-poitras-5y3b1?file=/src/App.js
【问题讨论】:
标签: javascript css reactjs react-hooks styles