Как можно отобразить анимированный текст на изображении при наведении мыши с помощью CSS3
Возможно создать анимированный текст при наведении мыши на изображение с использованием только CSS.
Если хотите, чтобы текст появился на изображении при наведении мыши на изображение, вы находитесь в правильном месте! Давайте посмотрим, как можно добиться такого эффекта.
- Добавьте изображение, используя тег <img>, и текст.
- Сначала необходимо добавить изображение, используя тег <img>. В другом элементе <div> вставьте текст, который хотите, чтобы появился при наведении мыши. Установите селектор :hover.
- Эффект при наведении мыши устанавливается с помощью псевдокласса :hover, который выбирает элемент и применяет к нему стиль. Установите свойство opacity.
- Первое свойство, которое вы должны установить, - opacity, которое указывает степень прозрачности элемента. Таким образом, в начале вы скрываете каждый элемент внутри класса. Установите свойство transition.
Следующее свойство, которое необходимо установить, - transition, которое в течение миллисекунд изменит значения элемента.
В данном примере, transition медленно меняет изображение (через 400 миллисекунд, когда вы навели мышь на изображение). Если не укажете свойство transition, не будет никакого эффекта.
Также используются свойства transition-delay и transition-duration. Первое из них указывает начальный процесс, а второе - время, требуемое для того, чтобы текст переместился сверху вниз.
Давайте рассмотрим пример:
Пример
<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
<style>
.example{
position:relative;
padding:0;
width:300px;
display:block;
cursor:pointer;
overflow:hidden;
}
.content {
opacity:0;
font-size: 40px;
position:absolute;
top:0;
left:0;
color:#1c87c9;
background-color:rgba(200,200,200,0.5);
width:300px;
height:300px;
-webkit-transition: all 400ms ease-out;
-moz-transition: all 400ms ease-out;
-o-transition: all 400ms ease-out;
-ms-transition: all 400ms ease-out;
transition: all 400ms ease-out;
text-align:center;
}
.example .content:hover { opacity:1; }
.example .content .text {
height:0;
opacity:1;
transition-delay: 0s;
transition-duration: 0.4s;
}
.example .content:hover .text {
opacity:1;
transform: translateY(250px);
-webkit-transform: translateY(250px);
}
</style>
</head>
<body>
<h2>Анимированный текст на изображении, появляющийся при наведении мыши</h2>
<div class="example">
<img src="/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg"
width="300" height="300" alt="tree" />
<div class="content">
<div class="text">Tree</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
<style>
.example{
position:relative;
padding:0;
width:300px;
display:block;
cursor:pointer;
overflow:hidden;
}
.content {
opacity:0;
font-size: 40px;
position:absolute;
top:0;
left:0;
color:#1c87c9;
background-color:rgba(200,200,200,0.5);
width:300px;
height:300px;
-webkit-transition: all 400ms ease-out;
-moz-transition: all 400ms ease-out;
-o-transition: all 400ms ease-out;
-ms-transition: all 400ms ease-out;
transition: all 400ms ease-out;
text-align:center;
}
.example .content:hover { opacity:1; }
.example .content .text {
height:0;
opacity:1;
transition-delay: 0s;
transition-duration: 0.4s;
}
.example .content:hover .text {
opacity:1;
transform: translateY(250px);
-webkit-transform: translateY(250px);
}
</style>
</head>
<body>
<h2>Анимированный текст на изображении, появляющийся при наведении мыши</h2>
<div class="example">
<img src="/uploads/media/default/0001/01/b408569013c0bb32b2afb0f0d45e93e982347951.jpeg"
width="300" height="300" alt="tree" />
<div class="content">
<div class="text">Tree</div>
</div>
</div>
</body>
</html>
Рассмотрим другой пример, где текст появляется снизу и доходит до центра:
Пример
<!DOCTYPE html>
<html>
<head>
<title>Заголовок документа</title>
<style>
.example {
cursor: pointer;
height: 300px;
position: relative;
overflow: hidden;
width: 400px;
text-align:center;
}
.example .fadedbox {
background-color: #666666;
position: absolute;
top: 0;
left: 0;
color: #fff;
-webkit-transition: all 300ms ease-out;
-moz-transition: all 300ms ease-out;
-o-transition: all 300ms ease-out;
-ms-transition: all 300ms ease-out;
transition: all 300ms ease-out;
opacity: 0;
width: 360px;
height: 100px;
padding: 130px 20px;
}
.example:hover .fadedbox { opacity: 0.8; }
.example .text {
-webkit-transition: all 300ms ease-out;
-moz-transition: all 300ms ease-out;
-o-transition: all 300ms ease-out;
-ms-transition: all 300ms ease-out;
transition: all 300ms ease-out;
transform: translateY(30px);
-webkit-transform: translateY(30px);
}
.example .title {
font-size: 2.5em;
text-transform: uppercase;
opacity: 0;
transition-delay: 0.2s;
transition-duration: 0.3s;
}
.example:hover .title,
.example:focus .title {
opacity: 1;
transform: translateY(0px);
-webkit-transform: translateY(0px);
}
</style>
</head>
<body>
<h2>Анимированный текст на изображении, появляющийся при наведении мыши</h2>
<div class="example">
<img src="/uploads/media/default/0001/01/4982c4f43023330a662b9baed5a407e391ae6161.jpeg" alt="tile3" width="400" height="300" alt="house" />
<div class="fadedbox">
<div class="title text"> House </div>
</div>
</div>
</body>
</html>