【发布时间】:2011-07-02 10:52:16
【问题描述】:
是否可以使用 Javascript 来切换悬停时更改的元素。我想构建一个按钮,允许 div 从两种不同的状态进行更改:(1)当 div 未悬停时和(2)当 div 悬停时。
有什么建议可以做到吗?
谢谢!
TC
【问题讨论】:
标签: javascript html css hover
是否可以使用 Javascript 来切换悬停时更改的元素。我想构建一个按钮,允许 div 从两种不同的状态进行更改:(1)当 div 未悬停时和(2)当 div 悬停时。
有什么建议可以做到吗?
谢谢!
TC
【问题讨论】:
标签: javascript html css hover
<input type = 'button' value = 'change div' onmouseover = 'javascript:getElementById('DivId').className = newStyleClass' onmouseout = 'javascript:getElementById('DivId').className = newStyleClass' />
【讨论】:
您可以尝试使用 jQuery,它会更容易。 $('#divId').css('hover', function(index){ 不管什么; });
如果您不喜欢,请告诉我,我可以绞尽脑汁思考如何用直接的 js 做到这一点。
【讨论】:
当然可以单独使用 CSS:
div { background-color:#000; }
div:hover { background-color:#cc0000; }
当您将鼠标悬停在div 上时,背景颜色将从黑色变为红色。
我认为使用 javascript 来完成这项任务是多余的。你可以用:hover 伪选择器做一些非常复杂的事情。考虑这个标记(和 CSS):
<div>I'm just a div <h1>I'm just an h1</h1></div>
div h1 { font-size:10px; font-weight:normal; }
div:hover { border:1px dotted #000; }
div:hover h1 { font-size:32px; font-weight:bold; color:#cc0000; }
如您所见,我们可以在上述规则中使用:hover 选择器,不仅可以设置悬停元素的样式,还可以设置任何子元素的样式。这个前提是大量的“飞出”导航是如何用嵌套的uls 来制作的。
【讨论】:
:hover 除了a 标签。如果需要 IE 6 支持,请查看code.google.com/p/ie7-js。该脚本将允许在任何元素上使用:hover(以及许多其他内容)。
:hover 的兼容性。所有其他浏览器都支持我上面说明的技术。
:active 伪选择器,完全支持:hover(正如我提供的链接上所说)
你当然可以!
你可以这样做:
jQuery:
$("#mydiv").hover(function ()
{
$(this).toggleClass("active");
// or $(this).toggle();
}
);
标准 javascript:
function toggle(obj)
{
var item = document.getElementById(obj);
if(item.style.visibility == 'visible') { item.style.visibility = 'hidden'; }
else { item.style.visibility = 'visible'; }
}
HTML:
<div onmouseover="toggle('mydiv');" onmouseout="toggle('mydiv');" id="mydiv">Hover</div>
【讨论】: