有段时间做开发前台,使用到了YUI。YUI提供了很多实用的工具和组件,不过在工作中只使用到了很少的一部分。其中TreeView和TabView一直都在使用,期间也对这两个组件做了一些扩展,使用中得到一些心得,记录下来希望能对一些人有帮助。
先对YUI做一些简单的介绍,写一个Tree使用的简单例子,这些例子中没有涉及到什么新的东西,与YUI文档中给的例子一样。对于使用过YUI Tree的人应该都了解这些。之后对Tree中涉及到的类和类之间的关系做一些讲解,结合源代码。最后就是对树做一些扩展。
Yahoo! User Interface Library(简称YUI) 是一个使用Javascript编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。YUI也包含几个核心的CSS文件,YUI组件分成2类:工具包和控件库。
•YUI工具包:
Animation Utility
动画(Animation):在你的页面中通过指定位置,大小,透明度或者页面元素的其他特性来创建一个"电影效果(cinematic effects)"。这些效果将在你的页面发生变化的时候给用户更好的体验。
Browser History Manager
Connection Manager (for XHR/Ajax)
连接管理(Connection Manager):这个工具包帮助你管理XMLHttpRequest(一般被称为AJAX)事务,它提供对表单提交(form posts),错误捕获(error handling)和callbacks的全面支持。该工具包也支持文件的上传管理。
DataSource Utility
数据源工具:
Drag and Drop Utility
拖放(Drag and Drop):创建可拖放的对象。为了提供丰富的交互功能(比如拖动一个对象到目标位置)你可能需要编写很多代码。这个工具包可以在所有支持的浏览器中捕获所有的操作事务并保证其稳定地运行。
Element Utility
Get Utility
动态的添加外部Javascript和CSS。
ImageLoader Utility
加载图像工具
JSON Utility
这将做解析JSON的首选组件。
Profiler
通过编程方式查看应用的动行情况。可以很方便的观察程序的执行性能。
Selector Utility
实现用类似CSS Selector的方式收集Node元素。最常用的方法query()。
•YUI控件:
AutoComplete
自动完成控件为文本输入提供一种渐进式的用户体验(streamline user interactions)。控件会提供相似项列表和基于多样化的数据格式的提前键入功能(type-ahead functionality based on a variety of data-source formats),并且可以通过XMLHttpRequest访问服务端的数据。
Button
一个按钮控件
Calendar
一个用来日期选择的动态图形控件
Charts [experimental]
混合了javascript和flash,支持显示条形,曲线和饼图。
Color Picker
一个选择颜色的控件
Container (including Module, Overlay, Panel, Tooltip, Dialog, SimpleDialog)
一组模仿windows样式的控件,他们包括Tooltip, Panel, Dialog 和 SimpleDialog。其中Module 和 Overlay控件提供一个可扩展的平台,你可以控制自定义的模仿windows样式的控件
DataTable
表格及其相关操作
Logger
提供一个快速和简单的记录日志的方式,它直接将日志信息输出到屏幕控制台(on-screen console)、Firefox的扩展组件FireBug,或者Safari的Javascrīpt控制台。yui的Debug组件将完整的记录输出信息和调试信息。
Menu
利用此控件只需要几行简单的代码就可以设计一个动态样式的菜单。可以完全使用javascrīpt构造一个菜单,can be layered on top of semantic unordered lists。
Rich Text Editor
类似word的一个文本编辑器
Slider
提供一个可滑动的组件,它允许使用者在一定的范围内(x轴,y轴)改变滑块的位置。
TabView
TreeView
提供一个节点可缩放的树形控件。节点可以是链接,自定义属性,并且可以动态加载。节点元素的展现可以通过CSS修改,比如文件夹视图,TO-DO任务列表或者其他可视化处理
•YUI的CSS资源
CSS Reset (neutralizes browser CSS styles)
标准的CSS排列(Standard CSS Reset):使用这些CSS声明来排除页面的空白部分并且公共元素的样式兼容各种浏览器的展现。
CSS Base (applies consistent style foundation for common elements)
CSS Fonts (foundation for typography and font-sizing)
标准的CSS字体(Standard CSS Fonts):标准的跨浏览器字体样式和大小展现。
CSS Grids (more than 1,000 CSS-driven wireframes in a 4KB file)
页面网格样式(CSS Page Grids):7个基本的用css组织子组件的页面框架,支持130种不通的页面布局。
YUI TreeView是YUI提供的众多组件中的一种,先看一下TreeView组件的目录结构:
Treeview的结构很清晰,就是一些CSS、图片和Js文件,assets文件里面的是跟组件样式相关的文件,如果要扩展树,可以修改这里面的treeview.css等,可以自己添加图片。Js文件是TreeView的核心,里面有TreeView的功能实现以及各种Node的声明。下面先看看YUI TreeViewz中有哪些类:
以后会对这写Node作详细的说明,现在先了解YUI中有哪些可以直接使用的Node,先看一个简单的例子,用YUI中提供TextNode生成一棵简单的树:
下面是代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>YUI Tree Test</title>
<link rel="stylesheet" type="text/css" href="build/fonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="build/treeview/assets/skins/sam/treeview.css" />
<script type="text/javascript" src="build/yahoo/yahoo.js"></script>
<script type="text/javascript" src="build/event/event.js"></script>
<script type="text/javascript" src="build/treeview/treeview.js"></script>
<script type="text/javascript">
function init(){
var treeView = new YAHOO.widget.TreeView('demoTreeDiv');
var node1 = new YAHOO.widget.TextNode("node",treeView.getRoot(),false);
var node2 = new YAHOO.widget.TextNode("node1",node1,false);
var node3 = new YAHOO.widget.TextNode("node2",node2,false);
var node4 = new YAHOO.widget.TextNode("node3",node3,false);
var node5 = new YAHOO.widget.TextNode("node4",node3,false);
treeView.draw();
}
</script>
</head>
<body onload="init()">
<div id="demoTreeDiv" style="margin:10px; border:1px solid #EEE;"></div>
</body>
</html>
要使用TreeView组件,需要先引入TreeView相关的Js和Css文件,从代码中可以看出,我们还引入了yahoo.js和event.js,yahoo.js这个文件包含了YUI中的一些全局对象以及全局方法,还有一些命名空间比如:YAHOO.widget,在TreeView中也有用到这些东西,所以需要把yahoo.js这个文件也引入。Event.js里面有一些事件操作方法,比如给一些组件绑定和监听事件之类的。
下面看树的构造过程:
1、 从树的构造代码来看,生成一棵树需要一个TreeView,这个treeview与HTML中的某一个Div绑定,之后树就生成在这个Div中。
2、 生成节点的时候用new YAHOO.widget.TextNode("node",treeView.getRoot(),false),把节点挂载到Treeview的根结点之上,之后构造父子关系就很简单了,只要指定已经生成节点作为父亲就可以。
3、 最后调用treeview的draw方法把树显示出来。
分享到:
相关推荐
在YUI3中,Tree View是一个重要的组件,用于展示层次结构数据,比如文件系统、组织结构等。这篇博文“YUI3 中tree的两种实现”探讨了如何在YUI3中创建和管理树形结构。 1. **YUI3 TreeView组件** YUI3 TreeView...
本教程将深入介绍YUI的基础知识和关键特性,帮助开发者快速入门。 首先,YUI提供了一系列强大的DOM操作工具,例如`YAHOO.util.Dom.get`用于通过ID查找页面元素,类似于`document.getElementById`。`YAHOO.util.Dom....
基于yui的layout,tree的一个demo
本教程将带你入门YUI3的基础知识。 **模块化设计** YUI3的核心理念是模块化,这意味着你可以根据需要只加载所需的组件,从而降低页面加载时间和资源消耗。例如,`yui-min.js`就是YUI3的最小核心模块,它包含了YUI...
Yahoo Tree组件是Yahoo UI Library(YUI)中的一部分,它是一个用于构建和管理树形数据结构的JavaScript库。YUI是一个开源的JavaScript和CSS库,旨在帮助开发者创建高性能、可扩展的Web应用程序。在本文中,我们将...
YUI3的事件系统是其强大功能之一,它允许开发者监听和处理DOM元素及自定义事件。在“yui3-master.zip”的“event”模块中,包含了丰富的事件相关的API,如`Y.on`, `Y.fire`等,它们使得事件处理更加灵活且易于维护...
利用Yahoo YUI库做的一个TREE实例,很详细的阐述了YUI的使用原理
《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...
总结,YUI 3.9.0 r2是一个强大的前端开发框架,它提供了一整套工具和组件,以应对复杂的界面设计挑战,并通过优化资源加载和管理,提升了Web应用的性能和用户体验。无论是初学者还是经验丰富的开发者,都能从中找到...
**YUI 2.7:一个全面的JavaScript和CSS框架** YUI(Yahoo! User Interface Library)是雅虎公司开发的一个开源的JavaScript和CSS库,它为构建高性能、跨平台的Web应用程序提供了丰富的工具和资源。YUI 2.7是这个库...
雅虎推出的一款javascript压缩工具。有JAVA版本和.NET版本。 yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ----------...
《YUI使用文档》汉语版是一份详细的YUI学习材料,它涵盖了这个JavaScript库的核心功能和使用方法。YUI,全称Yahoo! User Interface Library,是Yahoo开发的一个开放源代码的JavaScript库,旨在帮助开发者创建交互式...
通常,这样的组件会有一个主JS文件(如`yui-form-validator.js`),可能还有一个CSS文件(如`yui-form-validator.css`)来处理样式,以及一些示例或测试用例文件。 **相关知识点:** 1. **YUI库**:了解YUI的基本...
Yahoo UI Library(简称YUI)是一款开源的JavaScript库,由Yahoo公司开发并维护,旨在帮助开发者构建高性能、可扩展的Web应用程序。YUI 3.8.1是其发展过程中的一个重要版本,包含了丰富的组件和工具,为前端开发者...
User Interface Library (YUI)的一个扩展库,专为构建富互联网应用程序(RIA)而设计。YUI-EXT提供了许多高级组件,如表格、菜单、窗口、表单、布局管理器等,极大地丰富了YUI的功能,使得开发者能够更加便捷地创建...
YUI Compressor是一款强大的JavaScript和CSS压缩工具,由雅虎(Yahoo!)开发并开源。它的主要功能是通过删除代码中的空白符、注释以及不必要的字符,将文件大小压缩到最小,从而提高网页加载速度,减少网络带宽消耗...
在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现高效、快速的网页加载。本文将深入探讨yuicompressor的功能、...
YUI3.7.3是YUI的一个特定版本,它在发布时被视为最新的版本,提供了许多改进和新功能。 在JavaScript库中,YUI3.7.3主要关注于模块化和组件化的开发方式。模块化允许开发者将代码分解为独立的、可重用的部分,而...
YUI是雅虎公司开发的一个开源JavaScript库,它为Web开发者提供了丰富的工具和组件,以构建高效、可扩展的网页应用。这个压缩包"YUI.rar"包含了YUI的源代码以及相关的HTML和JavaScript示例,展示了如何利用YUI库创建...
YUI3.6版本是该库的一个重要里程碑,提供了丰富的组件和工具,以支持现代Web开发的需求。在这个文档及示例的压缩包中,你将找到关于YUI3.6的详细信息,包括API文档和实践示例,这将有助于你深入理解和应用YUI。 YUI...