`

我的新菜单

 
阅读更多


function Menu() {
    this.tbarH = 34;
    this.bbarH = 28;
    this.barH = 27;
    this.emendation = document.all ? 5 : 11;
    this.tbarCss = "border:1px solid #99BBE8;background:url(images/tbar-bg.gif) repeat-x;font-weight: bold;color:#15428B;line-height:34;height:" + this.tbarH + "px";
    this.bbarCss = "border:1px solid #99BBE8;background:url(images/tbar-bg.gif) repeat-x;font-weight: bold;color:#15428B;line-height:2;height:" + this.bbarH + "px";
    this.itemheadCss = "border-style:solid;border-color:#99BBE8;border-width:0 1px 1px 1px;background:url(images/header-bg.gif) repeat-x;line-height:25px;text-align:center;cursor:pointer;font-weight: bold;color:#15428B;height:" + this.barH + "px";
    this.itembodyCss = "border-style:solid;border-color:#99BBE8;border-width:0 1px 1px 1px;text-align:center;color:#15428B;display:none;";
    this.itemCss = "border-style:solid;border-color:#999;border-width:0;text-align:center;padding-top:67px;cursor:pointer;background:url(images/item64.gif) no-repeat top";
    this.container;
    if (!arguments[0]) {
        alert("\u8bf7\u5728\u521b\u5efa\u83dc\u5355\u65f6\u6307\u5b9a\u83dc\u5355\u7684\u5bb9\u5668");
        return;
    }
    if (typeof (arguments[0]) == "string") {
        this.container = document.getElementById(arguments[0]);
    } else {
        this.container = arguments[0];
    }
    var tbar = document.createElement("div");
    tbar.style.cssText = this.tbarCss;
    tbar.innerHTML = "<img src='images/menuicon.gif' align='middle'><span style='font-weight:bold;font-size:16px;'>\u7cfb\u7edf\u83dc\u5355</span>";
    var bbar = document.createElement("div");
    bbar.style.cssText = this.bbarCss;
    var c = document.createElement("div");
    c.style.border = "1px solid #99BBE8";
    c.appendChild(tbar);
    var body = document.createElement("div");
    body.style.borderTop = "0px solid #99BBE8";
    body.style.borderBottom = "0px solid #99BBE8";
    //body.style.backgroundColor = "lightyellow";
    body.style.height = parseInt(this.container.offsetHeight) - this.tbarH - this.bbarH - this.emendation + "px";
    c.appendChild(body);
    c.appendChild(bbar);
    this.container.appendChild(c);
    this.body = body;
    this.ibids = [];
}
Menu.prototype.add = function (id, pid, name, href, icon) {
    if (this.container) {
        if (pid == 0) {
            var item = document.createElement("div");
            item.setAttribute("id", "item" + id);
            var itemhead = document.createElement("div");
            itemhead.setAttribute("id", "itemhead" + id);
            itemhead.style.cssText = this.itemheadCss;
            itemhead.innerHTML = '<img src=images/menu3.gif align=bottom>' + name;
            var ibids = this.ibids;
            var bd = this.body;
            var bh = this.barH;
            itemhead.onclick = function (e) {
                var temp = this.id.substring(8);
                for (var k = 0; k < ibids.length; k++) {
                    if (ibids[k] == temp) {
                        var ib = document.getElementById("itembody" + ibids[k]);
                        ib.style.display = "block";
                        ib.style.height = parseInt(bd.style.height) - ibids.length * (bh) + "px";
                    } else {
                        document.getElementById("itembody" + ibids[k]).style.display = "none";
                    }
                }
            };
            item.appendChild(itemhead);
            var itembody = document.createElement("div");
            itembody.setAttribute("id", "itembody" + id);
            itembody.style.cssText = this.itembodyCss;
            item.appendChild(itembody);
            this.ibids.push(id);
            this.body.appendChild(item);
        } else {
            var item = document.createElement("div");
            item.setAttribute("id", "item" + id);
            item.style.cssText = this.itemCss;
            item.innerHTML = name;
            var menu = this;
            var obj = {id:id, pid:pid, name:name, href:href, icon:icon};
            item.onclick = function (e) {
                if (menu.click) {
                    menu.click(obj);
                }
            };
            item.onmouseover = function (e) {
               // this.style.border = '1px solid #eee';
            };
            var ib = document.getElementById("itembody" + pid);
            ib.appendChild(item);
        }
    }
};
Menu.prototype.init = function (fn) {
    var index = 0;
    var firstib = document.getElementById("itembody" + this.ibids[index]);
    firstib.style.display = "block";
    firstib.style.height = parseInt(this.body.style.height) - this.ibids.length * (this.barH) + "px";
    this.callback = fn;
};
Menu.prototype.load = function (url, params) {
    var menu = this;
    function kk(res) {
        var ret = eval("(" + res.responseText + ")");
        var data = ret.root;
        for (var k in data) {
            menu.add(data[k].code, data[k].parent, data[k].name, data[k].url, data[k].icon);
        }
        var index = 0;
        var firstib = document.getElementById("itembody" + menu.ibids[index]);
        firstib.style.display = "block";
        firstib.style.height = parseInt(menu.body.style.height) - menu.ibids.length * (menu.barH) + "px";
    }
    Ajax(url, params, kk);
};
Menu.prototype.on = function (eName, fn) {
    if(eName=='click'){
     this.click = fn;
    }
};
var Ajax = function (url, params, callback) {
    var reqError = "\u54cd\u5e94\u5f02\u5e38\uff01\uff01\uff01";
    var sendData = null;
    var createXHR = function () {
        var XHR;
        if (window.XMLHttpRequest) {
            XHR = new XMLHttpRequest();
        } else {
            if (window.ActiveXObject) {
                try {
                    XHR = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e) {
                    try {
                        XHR = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e) {
                    }
                }
            }
        }
        return XHR;
    };
    var processParams = function () {
        var ret = "";
        for (var p in params) {
            ret += "&";
            ret += p + "=" + params[p];
        }
        ret = ret.substring(1);
        return ret;
    };
    var method = (url.indexOf("?") == -1) ? "POST" : "GET";
    if (params && typeof (params) == "object") {
        if (typeof (params) == "object") {
            if (method == "GET") {
                url += "&" + processParams();
            } else {
                sendData = processParams();
            }
        }
        if (typeof (params) == "string") {
            if (method == "GET") {
                url += "&" + params;
            } else {
                sendData = params;
            }
        }
    }
    var xhr = createXHR();
    xhr.open(method, url, true);
    if (method == "POST") {
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                if (callback) {
                    callback(xhr);
                }
            } else {
                window.alert(reqError);
            }
        }
    };
    xhr.send(sendData);
};
function timer() {
    var d = new Date();
    document.getElementById("timer").innerHTML = d.toLocaleString();
}
//window.setInterval("timer()", 1000);

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    windows11经典菜单新版菜单切换.zip

    新菜单以居中的任务栏图标和磁贴式的应用程序列表为特点,提供快速访问常用应用和最近打开文件的功能。这种设计旨在提高触控友好性和平板模式下的用户体验,但同时也引起了一些习惯于经典开始菜单用户的不满。 ...

    VC 菜单制作实例(动态创建菜单、建立带图标的菜单)

    例如,`AppendMenu()`用于在现有菜单末尾添加新菜单项,而`InsertMenu()`则允许在指定位置插入新的菜单项。 下面是一个简单的动态创建菜单的步骤: 1. 初始化菜单句柄:使用`CreateMenu()`函数创建一个空菜单。 2....

    网吧游戏菜单 游戏菜单 家用游戏菜单

    【标题】:“网吧游戏菜单 游戏菜单 家用游戏菜单” 在当今的数字娱乐领域,网吧游戏菜单和家用游戏菜单扮演着至关重要的角色。它们是玩家与游戏库之间的桥梁,提供了一个用户友好的界面来浏览、选择和启动各种游戏...

    Windows系统桌面右键菜单及二级菜单设置

    然后,在“我的新菜单”项下创建一个新的子项,如“子菜单项1”,并在此子项下创建“默认”字符串值,值为`{我的二级菜单}`。这样,“我的新菜单”下就会出现“子菜单项1”,点击后会弹出二级菜单。 完成上述步骤后...

    最新最实用的android菜单界面布局

    1. **菜单的基本类型**:Android菜单主要分为三种类型——选项菜单(OptionsMenu)、上下文菜单(Context Menu)和弹出式菜单(PopupMenu)。选项菜单通常在屏幕顶部显示,与动作栏(ActionBar)紧密关联;上下文...

    Labview 设置菜单栏

    1. **创建新菜单**:在Labview开发环境中,你可以通过“工具”菜单下的“菜单编辑器”来创建新的菜单。在菜单编辑器中,可以添加新的顶级菜单或子菜单,并为它们指定快捷键和图标,使得操作更加便捷。 2. **添加...

    STM32_12864多级菜单_stm32f103菜单_STM3212864_stm32菜单_STM32菜单_12864菜单st

    对于每一层菜单,都需要更新屏幕上的相应区域以显示新的菜单选项。此外,为了优化性能,可能会有缓存策略来减少不必要的屏幕刷新。 为了处理用户输入,STM32的GPIO端口需要配置为中断模式,以便在按键按下时触发...

    C# 向窗体的系统菜单添加菜单项

    4. **处理菜单事件**:为了响应新菜单项的选择,我们需要重写窗体的`WndProc`方法,拦截`WM_COMMAND`消息。当用户点击菜单项时,系统会发送这个消息。你可以根据`wParam`参数识别出被点击的菜单项,然后执行相应的...

    MFC对话框动态添加右键快捷菜单-多级菜单

    在MFC应用程序的资源编辑器中,我们创建一个新的菜单资源,然后添加所需的菜单项。多级菜单可以通过嵌套子菜单来实现。例如,我们可以创建一个名为"文件"的菜单项,然后在其下添加"打开"和"保存"等子菜单项。 2. *...

    易语言编辑框增加右键菜单项源码

    这通常涉及到定义一个新的事件并关联到相应的菜单项。例如,对于“复制”功能,你可以这样设置: ```易语言 定义_事件(复制_事件, .编辑框) .编辑框.复制() 结束事件 ``` 4. **捕获右键点击事件**:在编辑框的...

    易语言动态添加菜单和事件

    在易语言中,可以使用“创建菜单”命令来创建一个新的菜单。这个菜单是一个对象,可以添加子菜单或菜单项。例如: ```易语言 .菜单 = 创建菜单() ``` 接下来,动态添加菜单项。假设我们有一个变量`菜单标题`存储...

    我的世界菜单制作器.zip

    在《我的世界》中,菜单界面通常是游戏启动后的第一个接触点,玩家在此选择新的游戏、继续现有进度或进行其他设置。传统的菜单界面虽然简洁,但可能无法满足所有玩家的个性化需求。《我的世界菜单制作器》的出现,...

    多级渐变菜单,经典树型菜单,三级关联菜单等多种菜单效果

    本篇文章将详细讲解标题和描述中提到的各种菜单效果,包括多级渐变菜单、经典树型菜单、三级关联菜单、收藏夹式树型菜单、拖拽菜单、五角型菜单以及软件型菜单。 首先,多级渐变菜单是一种视觉效果丰富的菜单设计,...

    Microsoft Word - 如何动态添加菜单菜单项子菜单.pdf

    AppendMenu函数是在菜单的末尾添加新菜单项,而InsertMenu则是在指定位置添加菜单项。 ```cpp // 使用AppendMenu在菜单的末尾添加菜单项 menu1.AppendMenu(MF_STRING, ID_TEST1, "Test1"); menu1.AppendMenu(MF_...

    支持多级的xml菜单(新)

    由于无法直接访问该链接,我将基于常见的实践方法来解释相关知识点。 1. **XML结构**: - 在XML文件中,每个菜单项通常由一个元素表示,例如`&lt;menu&gt;`,其中包含属性来定义菜单项的ID、文本、链接等信息。 - 多级...

    Android 系统菜单与自定义菜单

    在Android应用开发中,菜单是用户界面不可或缺的一部分,它提供了用户与应用交互的重要途径。本文将深入探讨Android系统的菜单功能以及如何自定义菜单,结合实际的开发环境XP3、Eclipse IDE、Android 2.2 SDK(JDK ...

    js的各种样式的菜单

    "js的各种样式的菜单"这个主题涵盖了JavaScript实现的各种菜单样式,这些样式可能包括下拉菜单、多级菜单、滑动菜单、折叠菜单等,都是为了提升用户体验而设计的。 首先,JavaScript是Web开发中的动态语言,它允许...

    为MFC对话框程序添加菜单和菜单响应函数

    - 添加新菜单:右键点击资源树中的菜单项,选择“插入菜单”来创建新的菜单。然后,添加菜单项,为每个菜单项设置ID(如ID_FILE_OPEN)和显示文本(如"打开")。 - 菜单项的ID需要遵循MFC的命名规则,通常是ID开头...

    Delphi Edit右键系统菜单加自定义菜单项

    这可以通过在Delphi的资源编辑器中添加新的菜单资源并定义菜单项来完成。每个菜单项都有一个唯一的ID,可以用来关联事件处理函数。 在`Unit1.pas` 文件中,我们需要编写代码来响应`WM_CONTEXTMENU`消息。这个消息会...

    Qt做的折叠菜单,新手必备.rar

    在本文中,我们将深入探讨如何使用Qt框架创建一个折叠菜单,这是基于提供的资源"Qt做的折叠菜单,新手必备.rar"。这个压缩包包含了QtNavListView的源码,它是一个适用于新手学习和实际项目中的折叠菜单界面。让我们...

Global site tag (gtag.js) - Google Analytics