悬停在html中的文本上不会更改css中的图像

Posted

技术标签:

【中文标题】悬停在html中的文本上不会更改css中的图像【英文标题】:hovering on text in html not changing image in css 【发布时间】:2020-09-22 02:40:29 【问题描述】:

当用户点击不同的文本时,我正在尝试更改图像,我的代码如下:

$("#zubi a").hover(function() 
  $("#pic").removeClass().addClass($(this).attr('rel'));
);
#pic.p1 
  content: url("https://picsum.photos/id/236/200/300");


#pic.p2 
  content: url("https://picsum.photos/id/237/200/300");


#pic.p3 
  content: url("https://picsum.photos/id/238/200/300");


#pic.p4 
  content: url("https://picsum.photos/id/239/200/300");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="zubi" class="row">
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a class="dropdown-item" href="category.html">MEN'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a rel="p1" class="dropdown-item" href="category.html">WOMEN'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a rel="p2" class="dropdown-item" href="category.html">KID'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a rel="p3" class="dropdown-item" href="category.html">JEWELLERY</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a rel="p4" class="dropdown-item" href="category.html">OTHER</a></div>
  <div class="col-md-0 col-lg-2"><img id="pic" style="margin-left:37%;height:90px;" class="mw-100 mh-100" src="https://picsum.photos/id/235/200/300"  /></div>
</div>

将鼠标悬停在文本上时,图像不会改变。谁能告诉我这里出了什么问题,提前谢谢

【问题讨论】:

1.没有 jQuery,2 个相同的图像 - 我在您的代码中添加了 jQuery,但它仍然是相同的图像 @mplungjan 第一张图不一样,剩下的我只是举个例子 当我将图像更改为 5 个不同的图像并添加 jQuery 时,您的代码似乎可以工作 @mplungjan 我无法将 jquery 添加到我的网站,这使我的整个网站错位,你能告诉我一个解决方案 投票结束是因为 不可重现或由错字引起 虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。 【参考方案1】:

在 jQuery 中没有任何东西可以“错位”网站,除非有不活动的 jQuery 代码突然被激活或旧的 jQuery 已被弃用并且与新的 jQuery 库一起工作不佳。

如果您的模板已经有 jQuery,那么只要您使用不同的图像,代码就应该可以工作。

也许你需要的只是包装

$(function() 
  $("#zubi a").hover(function() 
    $("#pic").removeClass().addClass($(this).attr('rel'));
  );
);

如果不是,那么这里是您在 vanilla JS 中发布的代码。注意我把 rel 改成了 data-rel

document.getElementById("zubi").addEventListener("mouseover", function(e) 
  const tgt = e.target;
  if (tgt.tagName.toUpperCase() === "A") 
    const pic = document.getElementById("pic")
    pic.className="";
    pic.classList.add(tgt.dataset.rel);
  
);
#pic.p1 
  content: url("https://picsum.photos/id/236/200/300");


#pic.p2 
  content: url("https://picsum.photos/id/237/200/300");


#pic.p3 
  content: url("https://picsum.photos/id/238/200/300");


#pic.p4 
  content: url("https://picsum.photos/id/239/200/300");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="zubi" class="row">
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a class="dropdown-item" href="category.html">MEN'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a data-rel="p1" class="dropdown-item" href="category.html">WOMEN'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a data-rel="p2" class="dropdown-item" href="category.html">KID'S WEAR</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a data-rel="p3" class="dropdown-item" href="category.html">JEWELLERY</a></div>
  <div class="col-md-4 col-lg-2 mt-3 pb-3"><a data-rel="p4" class="dropdown-item" href="category.html">OTHER</a></div>
  <div class="col-md-0 col-lg-2"><img id="pic" style="margin-left:37%;height:90px;" class="mw-100 mh-100" src="https://picsum.photos/id/235/200/300"  /></div>
</div>

【讨论】:

以上是关于悬停在html中的文本上不会更改css中的图像的主要内容,如果未能解决你的问题,请参考以下文章

仅在文本链接悬停 CSS 上显示图像

使用 CSS 反向图像悬停

悬停图像时更改文本不透明度

CSS HTML链接图像悬停更改段落格式

使用css将鼠标悬停在按钮上时如何更改站点背景图像?

CSS样式:悬停时如何更改图像?