发布于 2026-01-06 9 阅读
0

鼠标悬停时弹出图像

鼠标悬停时弹出图像

鼠标悬停时弹出图像

最近,我需要实现一个鼠标悬停时弹出图片的功能。上面的 GIF 动画演示了我的需求。一开始我不知道该怎么做,但经过几分钟的搜索,我找到了一种无需 JavaScript 就能轻松实现的方法。这种方法是将两张图片并排放置:一张是缩略图(较小的图片),另一张是较大的图片,当鼠标悬停在缩略图上时,较大的图片就会出现。让我们开始吧!

第一步:

我们将并排显示两张图片,缩略图和大图,如下面的代码块所示。因此,请在您的 HTML 文件中添加以下代码,并记得正确链接您的图片文件。

<main>
  <ul>
    <li>
      <img src="img/thumbnail1.jpg" alt="adventure" >
      <span class="large">
          <img src="img/large1.jpg" class="large-image" alt="adventure" >
      </span>
    </li>
    <li>
      <img src="img/thumbnail2.jpg"" alt="cat" >
      <span class="large">
         <img src="img/large2.jpg" class="large-image" alt="cat" >
      </span>
    </li>
    <li>
        <img src="img/large3.jpg" alt="adventure" >
        <span class="large">
          <img src="img/large3.jpg" class="large-image" alt="adventure" >
        </span>
    </li>
  </ul>
</main>

Enter fullscreen mode Exit fullscreen mode

由于我们使用的是无序列表,我们将在 CSS 中设置 ` ul<div>` 和`<img>` 标签的样式li,以移除列表样式。此外,我们将所有列表项设置为行内显示,并将图像设置为应用样式。在链接到 HTML 代码的 CSS 文件中添加以下内容:

    ul {
      display: flex;
    }

    li {
      list-style-type: none;
      padding: 10px;
      position: relative;
    }
Enter fullscreen mode Exit fullscreen mode

现在,我们的页面应该看起来像这样。

目前为止的工作成果图片

第二步

接下来,我们将使用绝对定位来隐藏较大的图片。我们将使用之前添加到span放置较大图片的元素上的类。

.large {
  position: absolute;
  left: -9999px;
}
Enter fullscreen mode Exit fullscreen mode

现在,只剩下较小的图像了。

目前为止的工作成果图片
让我们添加一些样式,使鼠标悬停在小图片上时,大图片能够弹出。

li:hover .large {
  left: 20px;
  top: -150px;
}
Enter fullscreen mode Exit fullscreen mode

就是这样。鼠标悬停在小图上时,就会出现大图。

我们可以更进一步,给图片添加阴影,甚至在每张图片下方添加文字。我决定添加阴影,并给大图添加圆角边框。

.large-image {
  border-radius: 4px;
   box-shadow: 1px 1px 3px 3px rgba(127, 127, 127, 0.15);;
}
Enter fullscreen mode Exit fullscreen mode

好了,我们完成了。你做过类似的事情吗?你是怎么做的?我很想知道。

文章来源:https://dev.to/sarah_chima/image-popup-on-hover-1kee