如何创建一个 div,它默认显示图片,但当您将鼠标悬停在它上面时会转换为一些文本细节?

Posted

技术标签:

【中文标题】如何创建一个 div,它默认显示图片,但当您将鼠标悬停在它上面时会转换为一些文本细节?【英文标题】:How to create a div where it show a picture by default but transitions to some text details when you hover over it? 【发布时间】:2021-04-21 21:12:41 【问题描述】:

我想创建一个 div。 它是 300 x 300 像素。 默认情况下,它有一张图片。 但是,当您将鼠标悬停在它上面时,它会转换为文本描述。 还应该有 0.2 秒的过渡期。

我不知道我们该怎么做。请帮忙。

main, .front, .back 
height:300px;
width:300px;


.back
display:none;


.front:hover .back 
display:block;
<div class="main"> 
  
  <div class="front">
  <img src="https://www.gardeningknowhow.com/wp-content/uploads/2019/04/lawn-pH.jpg"  style="width:100%;height:100%;">
  </div>
  
  <div class="back">
    <h1>Image Name</h1>
    <p>Image description blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah </p>
  </div>
  
</div>

【问题讨论】:

【参考方案1】:

您可以使用此代码

* 
  padding: 0;
  margin: 0;
  box-sizing: border-box;

.main, .front, .back 
  height:300px;
  width:300px;
  position: relative;


.back    
  height: 100%;
  width: 100%;
  position: absolute;
  padding: 6em 1em;
  text-align: center;
  top: -100%;
  right: 0;
  color: #fff;
  background-color: #333333;
  -o-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
 

.main:hover .back 
    display: block;
    top: 0%;
<div class="main"> 
  
  <div class="front">
  <img src="https://www.gardeningknowhow.com/wp-content/uploads/2019/04/lawn-pH.jpg"  style="width:100%;height:100%;">
  </div>
  <div class="back">
    <h1>Image Name</h1>
    <p>Image description blah blah blah blah blah blah blah blah blah  </p>
  </div>
  
</div>

【讨论】:

我从中得到的问题是,当区域没有悬停时,“back”类中的内容是不可见的。它在它上面。【参考方案2】:

.front,
.back 
  height: 300px;
  width: 300px;
  transition: 0.2s;


.back 
  transform: translateY(-80%);
  opacity: 0;


.front:hover .back 
  opacity: 100;
<div class="front">
  <img src="https://www.gardeningknowhow.com/wp-content/uploads/2019/04/lawn-pH.jpg"  style="width:100%;height:100%;">
  <div class="back">
    <h1>Image Name</h1>
    <p>Image description </p>
  </div>
</div>

这行得通!

如果你想隐藏图像然后:

.front,
.back 
  height: 300px;
  width: 300px;
  transition: 0.2s;


#image 
  transition: 0.2s;


.back 
  transform: translateY(-80%);
  opacity: 0;


.front:hover .back 
  opacity: 100;


.front:hover #image 
  opacity: 0;
<div class="front">
  <img id="image" src="https://www.gardeningknowhow.com/wp-content/uploads/2019/04/lawn-pH.jpg"  style="width:100%;height:100%;">
  <div class="back">
    <h1>Image Name</h1>
    <p>Image description </p>
  </div>
</div>

【讨论】:

以上是关于如何创建一个 div,它默认显示图片,但当您将鼠标悬停在它上面时会转换为一些文本细节?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React setState 和 setInterval 循环图像轮播?

悬停在图片上时如何创建圆形悬停显示

如何在 Firebug 中检查网页的动态悬停元素?

动画 div 悬停和鼠标离开延迟

当我将鼠标悬停在另一个 div 上时,如何使文本出现在一个 div 中?

将鼠标悬停在图像链接上时显示文本