Loading...

用 JavaScript 实现鼠标悬停时展开的菜单

虽然标题这样写,但实际上使用 JavaScript + DOM/CSS 组合可以实现很多强大的功能。昨天看到 fisio 提到这种鼠标悬停时展开的菜单,我原来也没有用过,经他一提醒觉得还是挺有用处的,尤其在有很多内容的页面上。

废话最后再说,直接给出代码先:

JavaScript

<script type="text/javascript">
    function popMenu(objId) {
        var obj = document.getElementById(objId);
        if (obj.style.display == 'none') {
            obj.style.display = 'block';
        } else {
            obj.style.display = 'none';
        }
    }
</script>

在页面中使用

<div id="menuCaption" onmouseover="popMenu('menuLists');" onmouseout="popMenu('menuLists');">
    <!-- 当鼠标悬停在这里时显示下面列表的内容 -->
    <ul id="menuLists" style="display:none;">
        <!-- 这里是鼠标悬停时显示的内容 -->
        <li>菜单列表内容</li>
        <li>菜单列表内容</li>
        <li>菜单列表内容</li>
    </ul>
</div>

原理

页面调用之初,只有 menuCaption 即菜单的标题显示,menuLists 这些菜单列表的内容不显示;但当鼠标进入菜单标题区域后,会激活 popMenu 函数把 menuLists 的样式从“display:none”改为“display:block”,这样 menuLists 的内容就显示出来了;鼠标离开菜单标题区域后再次隐藏列表内容。

SEO 方面的疑问

由于页面的代码中有“display:none”,相当于存在隐藏文字,我不敢确定 Google 对这类隐藏文字的态度,所以各位要使用的时候请务必小心,做好可能会被 Google 降权的心理准备。

6Comment(s). Blabla or Trackback

  • Pocky at 22:40 Oct 16, 2007 

    seo对display:none也这么高的要求啊?

  • cosbeta at 09:36 Oct 17, 2007 

    哎!!哎!! 哈哈 哈哈

  • 北极冰仔 at 09:50 Oct 17, 2007 

    cosbeta > 别笑了,有好方法就拿出来吧!

  • cosbeta at 10:49 Oct 17, 2007 

    逗你玩玩的,呵呵!小伙子好久没有上gtalk了

  • 北极冰仔 at 12:22 Oct 17, 2007 

    cosbeta > 呵呵,是啊,最近课多项目重有点忙不过来,更新也很少了。等有空了补上。

  • shukr at 01:21 May 25, 2008 

    新手,发现我的wordpress上无法使用啊。需不需要上床一个js脚本文件呢?

Blabla ↓

Connecting to server...

1Pingbacks & Trackbacks