当我将鼠标悬停在链接上时希望切换图像

Posted

技术标签:

【中文标题】当我将鼠标悬停在链接上时希望切换图像【英文标题】:Looking to switch image when I hover over a link 【发布时间】:2021-03-04 09:20:46 【问题描述】:

我一直在努力解决这个问题,我一直在寻找其他类似的问题,但还没有找到我的问题的答案。当我将鼠标悬停在图片下方的链接上时,我希望更改导航栏中的图片。

例如,当我没有将鼠标悬停在“主页”链接上时,这是我的导航栏。

当我将鼠标悬停在“主页”链接上时,这就是我想要发生的事情

任何帮助将不胜感激!

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


body 
  font-size: 18px;
  font-family: 'Poppins';


li, a 
  text-decoration: none;
  color: white;


ul 
  list-style: none;


.navbar 
  display: flex;
  flex-direction: row;
  width: 100%;
  justify-content: center;
  align-items: center;
  margin-left: 2em;
  padding-top: 2em;


.navlink::before 
  content: "";
  position: absolute;
  width: 50px;
  height: 5px;
  background-color: #703FFF;
  margin-top: 120px;
  margin-left: 2px;
  border-radius: 10px;


.navlink:nth-last-child(2)::before 
  margin-left: 20px;


.navlink:last-child::before 
  margin-left: 15px;


.navlink 
  display: flex;
  flex-direction: column;
  margin-right: 2.5em;


.navlink img 
  width: 3em;
  align-self: center;


/* Portfolio link */
.navlink:nth-last-child(3) 
  margin-right: 2em;


/* contact link */
.navlink:last-child 
  margin-left: -1em;


.navlink a
  align-self: center;
  margin-top: 2em;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 16px;


.new-wave 
  background: url("../images/Nav_Wave.png") center center/cover no-repeat;
  height: 110vh;
<div class="new-wave">
    <div class="navbar">
        <div class="navlink">
          <img src="images/home_dark.png" >                                                                                   
          <a href="#">home</a>

        </div>
          <div class="navlink">
          <img src="images/about_dark.png"  >
            <a href="#">about</a>
        </div>
        <div class="navlink">
          <img src="images/skills_dark.png"  >
          <a href="#">skills</a>
        </div>
        <div class="navlink">
          <img src="images/portfolio_dark.png"  >
          <a href="#">portfolio</a>
        </div>
        <div class="navlink">
          <img src="images/contact_dark.png"  >
          <a href="#">contact</a>
        </div>
      </div>
    </div>

【问题讨论】:

【参考方案1】:

当您将鼠标悬停在链接上时,您可以使用 javascript 更改 img src。离开时再放回去。

首先给你的元素一些 ID:

<img  id ="home-img"src="images/home_dark.png" >                                                                                   
<a id ="home" href="#">home</a>

然后监听事件:

document.getElementById("home").onmouseenter = function() 
  document.getElementById("home-img").src = "other/img.png"

document.getElementById("home").onmouseleave = function() 
  document.getElementById("home-img").src = "images/home_dark.png"

【讨论】:

如果我想在鼠标悬停链接时在图像上添加过渡效果,我该怎么做? @Greger 这有点棘手,但是您可以为您的元素创建一个具有所需效果的 css 类,然后在进入时添加该类并在离开时删除。这将导致元素显示动画。查看更多here.

以上是关于当我将鼠标悬停在链接上时希望切换图像的主要内容,如果未能解决你的问题,请参考以下文章

仅当我将鼠标悬停在其上时如何使图像出现

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

HTML/CSS - 将鼠标悬停在照片上时显示链接

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

在 div 鼠标悬停时修改图像

将鼠标悬停在文本上时,更改文本和背景图像