【发布时间】:2013-06-27 05:32:34
【问题描述】:
我有一个形状笨拙的导航栏,事实证明它很难使用鼠标悬停效果。
基本上,当我将鼠标悬停在一个按钮上时,我希望两边的 2 个图像以及鼠标悬停的图像发生变化。这可能吗?
我的导航栏代码:
<div align="left" id="navbar">
<ul class="navbarlist">
<li><a href="news.html"><img src="images/news.png" onmouseover="this.src='images/newshover.png'" onmouseout="this.src='images/news.png'"></a></li>
<li><img src="images/newsspace.png"></li>
<li><a href="print.html"><img src="images/print.png"onmouseover="this.src='images/printhover.png'" onmouseout="this.src='images/print.png'" ></a></li>
<li><img src="images/printspace.png"></li>
<li><a href="design.html"><img src="images/design.png" onmouseover="this.src='images/designhover.png'" onmouseout="this.src='images/design.png'"></a></li>
<li><img src="images/designspace.png"></li>
<li><a href="contact.html"><img src="images/contact.png" onmouseover="this.src='images/contacthover.png'" onmouseout="this.src='images/contact.png'"></a></li>
<li><img src="images/contactspace.png"></li>
<li><a href="http://crookedcartoon.bigcartel.com/"><img src="images/shop.png" onmouseover="this.src='images/shophover.png'" onmouseout="this.src='images/shop.png'"></a></li>
<li><img src="images/navend.png"></li>
</ul>
</div>
基本上(我希望这是合乎逻辑的):
当悬停在“images/news.png”上时,我希望“images/newsspace.png”也发生变化。
当悬停在 'images/print.png' 上时,我希望 'images/printspace.png' 进行更改,但也希望 'images/newspace.png' 更改为与我悬停在 'images/ 上时不同的图像news.png' 之前。
这可能吗?我想这需要一些复杂的跨度; noshow 课程之类的,但是有人可以告诉我从哪里开始吗?
编辑---------
使用 Jonathan 的 Jquery 建议,我为每个图像添加了一个类,以便脚本更容易识别它们,但是,我现在看到的淡入/淡出功能的问题是图像必须已经在页面上这个脚本来定位它。
$(document).ready(function(){
$("ul.navbarlist li:img.news").hover(
function () {
$(this).fadeOut
$("ul.navbarlist li:img.newsspace").fadeOut
},
function () {
$(this).fadeIn
$("ul.navbarlist li:img.1a").fadeIn
}
);
这个问题是,我在 img.1a 中消失了,但它不在页面上(只是在我的图像文件夹中)所以我不能给它一个类来让脚本从中定位它。
oi39.tinypic.com/2ns9tvl.jpg 这是一张图片来展示我希望实现的目标!
【问题讨论】:
-
你最好用 eventListeners 来做。如果你愿意使用像 JQuery 这样的库,那真的很容易。
-
无论如何,在构建站点的其余部分时,我都会使用 jquery,我会研究 eventListeners。谢谢你。
标签: jquery css navigation hover onmouseover