HTML Dog

跳至导航

Suckerfish :hover

作者:Patrick Griffiths 和 Dan Webb

大多数人应该知道,你可以使用 :hover 伪类来改变鼠标悬停在链接上的样式。你也应该能够将 :hover 应用于其他元素。


li:hover ul { display: block }

然而,Internet Explorer 只会在链接上识别 :hover。但可以尝试应用 Suckerfish JavaScript。


sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

此示例将 Suckerfish 应用于 ID 为 'nav' 的元素中的所有 li 元素。因此,只需对 CSS 做一点小小的改动,


li:hover ul, li.sfhover ul { display: block }

你就可以实现悬停效果了。

当然,你可以通过更改 JavaScript 的第二行,将这种模仿应用到任何(或没有)包含块中的任何元素。更多内容请阅读主文章

示例

你可以使用 Suckerfish :hover 来实现复杂的下拉菜单(如Suckerfish 下拉菜单的子集中所述),这可能是它最引人注目的应用。但它也可以用于突出显示悬停段落中的链接,例如。