求助:为Hover触发的Overlay内容添加1秒延迟显示的实现方法
解决方案
要实现overlay滑入后延迟1秒显示内容的效果,只需对CSS做以下修改:
- 给
overlay-content设置初始隐藏状态,并添加过渡效果 - 在父元素hover时,触发
overlay-content的显示,并设置延迟时间
修改后的完整CSS代码:
/* overlay */ .overlay { position: absolute; bottom: 0; left: 0; right: 0; background-color: rgba(255, 255, 255, 0.9); overflow: hidden; width: 0; height: 100%; transition: .5s ease; } .dv-each:hover .overlay { transition: .5s ease-in-out; width: 100%; } .overlay-content { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); white-space: nowrap; /* 初始隐藏内容 */ opacity: 0; /* 添加内容显示的过渡动画 */ transition: opacity 0.3s ease; } /* hover时触发内容显示,延迟1秒 */ .dv-each:hover .overlay-content { opacity: 1; transition-delay: 1s; }
说明
opacity: 0让内容初始完全透明,相比display: none能保留过渡动画效果transition-delay: 1s确保overlay完成滑入(0.5秒)后,再等待1秒才开始显示内容- 内容的过渡用
opacity实现,简洁自然,也可根据需求换成transform等其他动画效果
HTML部分无需修改,保持原结构即可。
内容的提问来源于stack exchange,提问作者Lê Trung Hiếu
相关产品推荐
相关产品推荐

