在页面上实现右键菜单(ContextMenu),效果明显,用途广泛,并且,利用YUI,实现起来也不复杂。我参考了YUI的文档之后,设计了一个简单的实现右键菜单的页面。
首先,看一看没有写js的页面代码:
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>ContextMenuTest</title>
-
-
-
- <link rel="stylesheet" type="text/css" href="../javascripts/yui/menu/assets/skins/sam/menu.css">
-
- <style type="text/css">
- #Workbench {
- position:absolute;
- left:124px;
- top:57px;
- width:597px;
- height:278px;
- z-index:1;
- border:#0000FF solid 1px;
- }
- #TestContextMenu {
- position:relative;
- width:400px;
- height:100px;
- border:#FF0000 solid 1px;
- left: 10px;
- top: 10px;
- background-color:#99CC00;
- }
- body {
- font-size: 13px;
- }
- </style>
- </head>
-
- <body class="yui-skin-sam">
- <div id="Workbench">
- <div id="TestContextMenu"></div>
- </div>
- </body>
- </html>
可以看到,只有两个div和一些CSS样式。下面,开始写js,首先,导入一些要用到的js文件:
-
-
- <script type="text/javascript" src="../javascripts/yui/yahoo/yahoo.js"></script>
-
-
- <script type="text/javascript" src="../javascripts/yui/event/event.js"></script>
- <script type="text/javascript" src="../javascripts/yui/dom/dom.js"></script>
- <script type="text/javascript" src="../javascripts/yui/animation/animation.js"></script>
-
-
- <script type="text/javascript" src="../javascripts/yui/container/container_core.js"></script>
-
-
- <script type="text/javascript" src="../javascripts/yui/menu/menu.js"></script>
在这个页面中,可能不会用到上面所有的文件,但都写在这了。
接着,编写页面中的js脚本。先设计一个函数,并让页面加载完成后调用它:
- YAHOO.example.testContextMenu_init = function(p_sType) {
-
-
- }
- YAHOO.util.Event.addListener(window, "load", YAHOO.example.testContextMenu_init);
这样就完成了这个功能。接下来,就该写这个函数里面的内容了。首先,产生一个ContextMenu对象:
- var target = document.getElementById("TestContextMenu");
-
- var aMenuItems = [
-
- { text: "编辑", helptext: "Shift + E" },
- { text: "复制", helptext: "Shift + C" },
- { text: "删除", helptext: "Shift + D" }
-
- ];
-
- var aContextMenu = new YAHOO.widget.ContextMenu(
-
- "myContextMenu",
- {
- trigger: target,
- itemdata: aMenuItems,
- lazyload: true,
- effect: {
- effect:YAHOO.widget.ContainerEffect.FADE,
- duration:0.1
- }
- }
-
- );
其中的target就是需要响应右键菜单的区域。aMenuItems是菜单项,aContextMenu就是构造的ContextMenu函数。
接着,设计一些事件响应函数:
- function onContextMenuClick(p_sType, p_aArgs) {
-
- var oItem = p_aArgs[1]
-
- if(oItem) {
-
- switch(oItem.index) {
-
- case 0:
- alert("This is the first Item")
- break;
-
- case 1:
- alert(oItem)
- break;
-
- case 2:
- alert(p_aArgs[1])
- break;
-
- }
-
- }
-
- }
-
- function onContextMenuRender(p_sType, p_aArgs) {
-
- this.clickEvent.subscribe(onContextMenuClick);
-
- }
-
- aContextMenu.renderEvent.subscribe(onContextMenuRender);
这里的函数布置顺序也是一般的事件注册顺序。现在,就可以跑跑看了。
ps:在YUI的文档中,有一个GetListItemFromEventTarget()函数,可以从触发右键菜单的元素开始向上追溯到指定的父元素,在一般的页面设计中,都是用得到的。另外,菜单的自定义CSS,也可参考
YUI的Menu文档。
分享到:
相关推荐
`yuimemu.reg` 文件的作用是向用户的注册表添加条目,这样就能在文件资源管理器的右键菜单中创建一个新的选项,让用户可以直接调用`yuimemu.cmd` 来运行`YUIcompressor`。使用这个脚本需要谨慎,因为错误的操作可能...
可惜官网提供的版本都不具备右键功能,每次压缩都要cmd输入一些命令实在是繁琐,本文就介绍如何给YUI Compressor添加右键命令,方便使用。 网上已有一些网友写好的安装包,但对应的版本太低,目前最新最多人使用的...
在下载并解压缩文件后,运行"install.cmd"安装脚本,这将把YUI Compressor的功能集成到你的文件资源管理器的右键菜单中。这意味着当你需要压缩一个JS或CSS文件时,只需在文件上右击,选择相应选项,脚本就会自动调用...
3. **下拉菜单**:YUI的Menu组件可以轻松创建多级下拉菜单,提升网站导航的用户体验。 4. **拖放功能**:YUI的Drag & Drop模块支持元素的拖放操作,适用于创建可交互的布局或组织工具。 5. **数据表格**:YUI的...
3. `yuicompressor.reg`:这可能是一个注册表文件,用于在Windows系统中添加YUI Compressor到右键菜单,方便用户快速压缩文件。用户只需导入此注册表项,就能在文件或文件夹上右键点击并选择“使用YUI Compressor...
在JS或CSS文件的右键菜单里,你能找到“[YUI 压缩]”,你可以使用它直接对脚本压缩。 为了方便识别哪个是压缩的那个是原始代码,你可以将源文件文件名命名为“文件名.source.扩展名”的形式,批处理程序会自动生成...
加入了右击TAB选项卡时显示关闭的上下文菜单 具体实现代码: 右键菜单 HTML: 关闭 全部关闭 除此之外全部关闭 <div class=menu-sep></div> 当前页右侧全部关闭<
YUI(Yahoo! User Interface Library)是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、可扩展的Web...通过深入研究这个包,你将能够利用YUI的强大功能,创建出高效、美观且用户体验优秀的Web应用。
`document.cookie`用于管理Cookie,`document.oncontextmenu`处理右键菜单事件,`document.createElement`创建新的DOM元素,`document.elementFromPoint`则可以根据鼠标位置找到对应的元素。 YUI的事件系统强大且...
例如,例子中可能用到了“yui-button”来创建交互式的按钮,或者使用“yui-menu”构建导航菜单,这些组件大大简化了开发工作,提升了用户体验。 在实际开发中,YUI的调试工具也非常实用。YUI Logger可以帮助开发者...
《深入理解YUI3:基于yui3-master.zip的探讨》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为Web开发者提供了丰富的功能和工具,以创建交互性强、性能优秀的网页应用。YUI3是...
YUI-EXT提供了许多高级组件,如表格、菜单、窗口、表单、布局管理器等,极大地丰富了YUI的功能,使得开发者能够更加便捷地创建具有复杂交互性的Web应用。 YUI本身是一个开源的JavaScript库,由Yahoo开发,旨在简化...
这将会创建一个新的压缩后的CSS文件"compressed_style.css"。 3. **JavaScript压缩**:对于JavaScript文件,只需将.css替换为.js即可。例如,`java -jar yuicompressor.jar script.js -o compressed_script.js`。 ...
在3.9.0 r2这个版本中,YUI提供了丰富的组件和工具,帮助开发者创建高效、可维护且用户体验优良的Web应用。 一、YUI的核心特性 1. **模块化**:YUI采用AMD(Asynchronous Module Definition)模块加载机制,允许...
2. **事件处理**:YUI3提供了强大的事件系统,支持DOM事件、自定义事件以及事件委托,使得监听和响应各种用户交互变得简单。 3. **CSS样式工具**:YUI3包含了一套CSS工具,如样式类名管理器(YUI.addClass, YUI....
例如,YUI会自动创建`widget`, `util`, `example`等基础命名空间,开发者可以自由扩展。 接着,`lang`模块提供了JavaScript语言工具。其中,`lang.extend`用于实现对象间的继承,不同于传统的面向对象编程,它不会...
YUI 库,全称Yahoo! UI Library。是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等...YUI 项目包括YUI 库和两个创建时工具: YUI Compressor (压缩) 和 YUI Doc (JavaScripts代码的文档引擎)。
YUI是一个开源的JavaScript库,它包含了丰富的工具和组件,用于创建交互式、高性能的Web应用。这个表单验证器是YUI库中的一个关键部分,用于确保用户在提交表单时输入的数据符合预设的规则和格式,从而提高数据质量...
《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 ...在Idea这样的集成开发环境中,我们可以方便地利用yuicompressor进行代码压缩,提升开发效率。掌握yuicompressor的使用,无疑是提升前端开发能力的重要一环。
此外,利用YUI提供的调试工具进行代码优化,确保应用性能。 总之,YUI 3.0.0作为雅虎官方的JavaScript库,以其全面的功能、高效的性能和良好的社区支持,成为前端开发者不可或缺的工具之一。对于希望提升Web开发...