JavaScript 自动弹出菜单问题

问题描述

JavaScript 自动弹出菜单问题
 html文档结构如下:
<body>
   <div>
       <a href="3" class="meauLink" id="meau1">comedies</a>
       <ul class="meau" id="meau2">
           <li><a href="page1.html">All is Well That Ends Well1</a></li>
           <li><a href="page1.html">All is Well That Ends Well2</a></li>
           <li><a href="page1.html">All is Well That Ends Well3</a></li>
           <li><a href="page1.html">All is Well That Ends Well4</a></li>
       </ul>
   </div>
     JS代码:
      function toggleMeau1()
        {
            var link = document.getElementById("meau1");
            var link1 = document.getElementById("meau2").style;
            link.onmouseover = function()
            {
                link1.display = "block";

            }  //鼠标移动到链接上自动打开菜单
            link.parentNode.onmouseout = function()
            {
                link1.display = "none";
            }//鼠标移出层后自动关闭菜单
        }

                问题来了
                鼠标离开链接后自动关闭了菜单,而我的原先设想是鼠标离开层后再自动关闭菜单。用css设置ul的display状态为none。鼠标移动到链接上打开的菜单难道就不算div的吗(这是本问题的重点,希望大神们详细解答下)?为了对比, 我又试了将代码改成进入层自动打开菜单,离开层关闭菜单,能达到鼠标离开层自动关闭菜单的效果。

解决方案

用计时器延时执行隐藏操作,如果移动到菜单上就清楚掉计时器

你这种效果用css就能完毕,不需要用js,麻烦

css下拉菜单

 <div>
    <a href="3" class="meauLink" id="meau1">comedies</a>
    <ul class="meau" id="meau2">
        <li><a href="page1.html">All is Well That Ends Well1</a></li>
        <li><a href="page1.html">All is Well That Ends Well2</a></li>
        <li><a href="page1.html">All is Well That Ends Well3</a></li>
        <li><a href="page1.html">All is Well That Ends Well4</a></li>
    </ul>
</div>
<script>
    function toggleMeau1() {
        var link = document.getElementById("meau1");
        var link1 = document.getElementById("meau2");
        link1.onmouseover = function () {
            clearTimeout(timer);
        }
        link1.onmouseout = function (e) {
            e = e || window.event;
            var o = e.relatedTarget || e.toElement;
            do {
                if (o == this) return;//移动到子元素
            }
            while (o = o.parentNode)

            this.style.display='none'
        }
        link.onmouseover = function () {
            link1.style.display = "block";

        }  //鼠标移动到链接上自动打开菜单
        var timer
        link.onmouseout = function (e) {
            e = e || window.event;
            var o = e.relatedTarget || e.toElement;
            do {
                if (o == this) return;//移动到子元素
            }
            while (o = o.parentNode)

            timer = setTimeout(function () {
                link1.style.display = "none";
            }, 500);

        }//鼠标移出层后自动关闭菜单
    }
    toggleMeau1()
</script>
时间: 2024-12-27 10:29:38

JavaScript 自动弹出菜单问题的相关文章

Android 高仿QQ滑动弹出菜单标记已读、未读消息

  在上一篇博客<Android 高仿微信(QQ)滑动弹出编辑.删除菜单效果,增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接下来,将进一步学习,如何为不同的list item呈现不同的菜单,此处我们做一个实例:Android 高仿QQ滑动弹出菜单标记已读.未读消息,看下效果图: 1. 创建项目,并导入SwipeMenuListView类库 2. 创建消息实体bean: public class Msg { public int

Android仿QQ滑动弹出菜单标记已读、未读消息_Android

在上一篇<Android仿微信滑动弹出编辑.删除菜单效果.增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接下来,将进一步学习,如何为不同的list item呈现不同的菜单,此处我们做一个实例:Android 高仿QQ滑动弹出菜单标记已读.未读消息,看下效果图: 1. 创建项目,并导入SwipeMenuListView类库 2. 创建消息实体bean: public class Msg { public int id; publi

Android仿QQ滑动弹出菜单标记已读、未读消息

在上一篇<Android仿微信滑动弹出编辑.删除菜单效果.增加下拉刷新功能>里,已经带着大家学习如何使用SwipeMenuListView这一开源库实现滑动列表弹出菜单,接下来,将进一步学习,如何为不同的list item呈现不同的菜单,此处我们做一个实例:Android 高仿QQ滑动弹出菜单标记已读.未读消息,看下效果图: 1. 创建项目,并导入SwipeMenuListView类库 2. 创建消息实体bean: public class Msg { public int id; publi

JavaScript自动弹出窗口并自动关闭窗口代码

 <HTML> <HEAD> <TITLE>自动离开的窗口</TITLE> <SCRIPT> <!-- var flyingwin var popupwidth=200 var popupheight=150 var marginright var windowcenter var i_top=200 var i_left=-popupwidth-50 var step=40 var timer var waitingtime=5000 v

在 XP 中点击&quot;开始&quot;菜单中的子菜单时没有自动弹出,怎么办?

在 Windows XP 中,点击"开始"菜单,然后将鼠标指针停在"所有程序"上,"所有程序"并没有自动弹出菜单,而是通过点击"所有程序"才会显示其菜单.同样,如果想打开 "所有程序"中的子菜单,也是通过点击才能显示子菜单.本文介绍了在 Windows XP 中,设置"开始"菜单中的菜单自动弹出的方法. 操作步骤 右键点击"开始",选择"属性".如

JavaScript实现自动弹出窗口并自动关闭窗口的方法_javascript技巧

本文实例讲述了JavaScript实现自动弹出窗口并自动关闭窗口的方法.分享给大家供大家参考.具体如下: 这里介绍的JavaScript自动弹出窗口并自动关闭窗口,JS实现此特效似乎很简单,打开网页后即显示一个弹出窗口,之后会自动离开,使用了window.open和document.open();以及document.close();对象共同来实现,现在似乎用的不多了. 运行效果如下图所示: 具体代码如下: <HTML> <HEAD> <TITLE>自动离开的窗口<

Javascript模拟游戏中的弹出菜单效果

javascript|菜单 许多游戏的菜单弹出显得很酷,其实用简单的javascript代码很容易就可以实现这种效果,这对一些做游戏类个人主页的朋友很有帮助,她可以让浏览者有一种身临其境的感觉,而她原代码可是非常的简单哦.就是下面的寥寥几行. <html> <head> <title>模拟游戏中弹出菜单效果</title> <script language="javascript"> var b = 0; var c = tr

javascript自定义右键弹出菜单实现方法

  本文实例讲述了javascript自定义右键弹出菜单实现方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <head runat="server"> <title>无标题页</title> <script type="text/javascript&q

Android仿微信滑动弹出编辑、删除菜单效果、增加下拉刷新功能_Android

如何为不同的list item呈现不同的菜单,本文实例就为大家介绍了Android仿微信或QQ滑动弹出编辑.删除菜单效果.增加下拉刷新等功能的实现,分享给大家供大家参考,具体内容如下 效果图: 1. 下载开源项目,并将其中的liberary导入到自己的项目中: 2. 使用SwipeMenuListView代替ListView,在页面中布局: <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeRefresh