`

我的新菜单

 
阅读更多


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. *...

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

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

    我的世界菜单制作器.zip

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

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

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

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

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

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

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

    支持多级的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开头...

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

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

Global site tag (gtag.js) - Google Analytics