鼠标滑过图片透明文字遮罩向上滑出效果怎么实现?遮罩层从下往上滑动,文字也跟着遮罩层滑动,纯hover效果怎么做
【以下回答由 GPT 生成】
问题分析
这个问题要求实现当鼠标滑过一张图片时,图片上的透明文字遮罩层会从下往上滑动,同时文字也跟随遮罩层一起滑动的效果。要求使用纯CSS的hover效果。
解决方案
实现这个效果可以使用CSS的transition和transform属性。具体步骤如下:
以下是实现该效果的示例代码:
<!DOCTYPE html>
<html>
<head>
<style>
.container {
position: relative;
width: 300px;
height: 200px;
overflow: hidden;
}
.image {
width: 100%;
height: 100%;
}
.mask {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 0;
background-color: rgba(0, 0, 0, 0.5);
transition: height 0.3s ease;
}
.text {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.container:hover .mask {
height: 100%;
}
.container:hover .text {
transform: translateY(0%);
}
</style>
</head>
<body>
<div class="container">
<img class="image" src="image.jpg" alt="Image">
<div class="mask"></div>
<div class="text">
<h3>文字标题</h3>
<p>文字内容</p>
</div>
</div>
</body>
</html>
这样就实现了当鼠标滑过图片时,透明文字遮罩层从下往上滑动,文字也跟随遮罩层一起滑动的效果。
【相关推荐】
没太明白你的意思 你可以画个图 看看吗?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.image-container {
position: relative;
display: inline-block;
}
.overlay {
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
opacity: 0;
transition: opacity 0.3s, transform 0.3s;
transform: translateY(100%);
}
.text {
color: #fff;
text-align: center;
margin-top: 50%;
transform: translateY(-50%);
transition: transform 0.3s;
}
.image-container:hover .overlay {
opacity: 1;
transform: translateY(0);
}
.image-container:hover .text {
transform: translateY(-150%);
}
</style>
</head>
<body>
<div class="image-container">
<img src="your-image-url" alt="Your Image">
<div class="overlay">
<h2 class="text">Your Text</h2>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.card {
position: relative;
width: 400px;
height: 320px;
overflow: hidden; /* 超出隐藏 */
}
.card > img {
width: 100%;
height: 100%;
}
.card .cover {
width: 100%;
height: 100%;
position: absolute;
left: 0;
bottom: -100%;
background-color: rgba(0, 0, 0, .7);
color: #fff;
padding: 0 10px;
box-sizing: border-box;
transition: all .4s;
}
.card:hover .cover {
bottom: 0;
}
</style>
</head>
<body>
<div class="card">
<img src="./static/bg.png" alt="">
<div class="cover">哈哈哈哈哈</div>
</div>
</body>
</html>