Yahoo javascript 开源界面库YUI 和EXT
清清月儿整理
[yui][译]Yahoo!User Interface Libray 介绍
Yahoo! User Interface Library(简称yui) 是一个使用JavaScript编写的工具和控件库。它利用DOM脚本,DHTML和AJAX来构造具有丰富交互功能的Web程序。yui也包含几个核心的CSS文件。yui中的所有组件已经以开源的形式发布,它们遵循BSD协议并且可以免费使用。可以从Sourceforge站点下载完整的项目文件,同时包含相关文档和示例。
-Written by 浪子@cnblogs.com
Yui组件分成2类:工具包和控件库
Yui 工具包
Yui 工具包利用DOM脚本来简化浏览器内的开发(in-browser devolvement),使用DHTML和AJAX的特性开发所有的Web程序。
动画(Animation):在你的页面中通过指定位置,大小,透明度或者页面元素的其他特性来创建一个“电影效果(cinematic effects)”。这些效果将在你的页面发生变化的时候给用户更好的体验。
连接管理(Connection Manager ):这个工具包帮助你管理XMLHttpRequest(一般被称为AJAX)事务,它提供对表单提交(form posts),错误捕获(error handling)和callbacks的全面支持。该工具包也支持文件的上传管理。
DOM:DOM工具包提供更简单的DOM脚本的功能调用方式,包含元素的位置和CSS样式的管理。
拖放(Drag and Drop):创建可拖放的对象。为了提供丰富的交互功能(比如拖动一个对象到目标位置)你可能需要编写很多代码。这个工具包可以在所有支持的浏览器中捕获所有的操作事务并保证其稳定地运行。
事件(Event):这个神奇的管理类库给你提供一种简单安全的方法访问浏览器的事件(比如点击和键盘操作)。这个事件封包中还包含了自定义事件对象,它为你的程序交互提供一种发布和订阅事件的机制。
yui控件:
yui控件库为你页面提供一组高交互性性的可视化元素。这些元素完全在客户端创建维护,不需要请求服务器进行页面刷新。
这些控件包括:
自动完成(AutoComplete)控件:自动完成控件为文本输入提供一种渐进式的用户体验(streamline user interactions)。控件会提供相似项列表和基于多样化的数据格式的提前键入功能(type-ahead functionality based on a variety of data-source formats),并且可以通过XMLHttpRequest访问服务端的数据。
日历(Calendar)控件:一个用来日期选择的动态图形控件。
容器(Container)控件:一组模仿windows样式的控件,他们包括Tooltip, Panel, Dialog 和 SimpleDialog。其中Module 和 Overlay控件提供一个可扩展的平台,你可以控制自定义的模仿windows样式的控件。
日志(Logger)控件:提供一个快速和简单的记录日志的方式,它直接将日志信息输出到屏幕控制台(on-screen console)、Firefox的扩展组件FireBug,或者Safari的Javascript控制台。yui的Debug组件将完整的记录输出信息和调试信息。
菜单(Menu)控件:利用此控件只需要几行简单的代码就可以设计一个动态样式的菜单。可以完全使用javascript构造一个菜单,can be layered on top of semantic unordered lists。
滑块(Slider)控件:提供一个可滑动的组件,它允许使用者在一定的范围内(x轴,y轴)改变滑块的位置。
树形(TreeView)控件:提供一个节点可缩放的树形控件。节点可以是链接,自定义属性,并且可以动态加载。节点元素的展现可以通过CSS修改,比如文件夹视图,TO-DO任务列表或者其他可视化处理
第三章 yui的CSS资源
为了让CSS能符合不同等级的浏览器(A-Grade browsers)的标准,我们想了很多。我们把这些作为yui类库的一部分共享出来,希望能在这里得到促进,获得一个简洁的,可维护并在浏览器中表现优秀的设计。
页面网格样式(CSS Page Grids):7个基本的用css组织子组件的页面框架,支持130种不通的页面布局。
标准的CSS字体(Standard CSS Fonts):标准的跨浏览器字体样式和大小展现。
标准的CSS排列(Standard CSS Reset):使用这些CSS声明来排除页面的空白部分并且公共元素的样式兼容各种浏览器的展现。
YUI Team于美国时间5月28日发布了YUI 2.5.2,主要变化:
1. 这一版针对Firefox3和Opera9.5解决了几个关键性Bug。
2. 修复了DataTable、Menu、RTE、Button的几个主要Bug。
3. Charts组件增加3种新风格。
4. 从这版开始,在YUI下载包中增加了ActionScript源文件,方便开发者深入了解Charts和Uploader组件。
详情请见YUI Blog。
主页:http://developer.yahoo.com/yui/
清清月儿整理
控件:
EXT介绍
主要包括data,widget,form,gird,dd,menu,其中最强大的应该算gird了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据需要按需加载您想要的类库就可以了.
主要包括三个大的文件ext-all.css,ext-base.js,ext-all.js(包括所有的类库,您可以根据需要进行删减.官方网站提供这一接口),在引用ext类库的时候.这三个文件必不可少.
Combination Samples
-
Feed Viewer 2.0
RSS 2.0 feed reader sample application that features a swappable reader panel layout.
-
Simple Tasks 2.0
Complete personal task management application sample that runs on Adobe AIR.
-
Simple Tasks
Personal task management application sample that uses Google Gears for data storage.
-
Image Organizer
DataView and TreePanel sample that demonstrates dragging data items from a DataView into a TreePanel.
-
Web Desktop
Demonstrates how one could build a desktop in the browser using Ext components including a module plugin system.
Grid Samples
-
Basic Array Grid
A basic read-only grid loaded from local array data that demonstrates the use of custom column renderer functions.
-
Editable Grid
An editable grid loaded from XML that shows multiple types of grid ediors as well as defining custom data records.
-
XML Grid
A simple read-only grid loaded from XML data.
-
Paging
A grid with paging, cross-domain data loading and custom- rendered expandable row bodies.
-
Grouping
A basic grouping grid showing collapsible data groups that can be customized via the "Group By" header menu option.
-
Live Group Summary
Advanced grouping grid that allows cell editing and includes custom dynamic summary calculations.
-
Grid Plugins
Multiple grids customized via plugins: expander rows, checkbox selection and row numbering.
-
Grid Filtering
New! Grid plugins providing custom data filtering menus that support various data types.
-
Grid From Markup
Custom GridPanel extension that can convert a plain HTML table into a dynamic grid at runtime.
-
Binding: Grid (basic)
New! Data binding a grid to a detail preview panel via the grid's RowSelectionModel.
-
Binding: Grid (advanced)
New! Refactoring the basic data binding example to use a class-based application design model.
TabPanel Samples
-
Basic Tabs
Basic tab functionality including autoHeight, tabs from markup, Ajax loading and tab events.
-
Advanced Tabs
Advanced tab features including tab scrolling, adding tabs programmatically and a context menu plugin.
Window Samples
-
Hello World
Simple "Hello World" window that contains a basic TabPanel.
-
MessageBox
Different styles include confirm, alert, prompt, progress and wait and also support custom icons.
-
Layout Window
A window containing a basic BorderLayout with nested TabPanel.
Tree Samples
-
Drag and Drop Reordering
A TreePanel loaded asynchronously via a JSON TreeLoader that shows drag and drop with container scroll.
-
Multiple trees
Drag and drop between two different sorted TreePanels.
-
Column Tree
A custom TreePanel implementation that demonstrates extending an existing component.
Layout Managers
-
Layout Browser
New! Includes examples for each standard Ext layout, several custom layouts and combination examples.
-
Border Layout
A complex BorderLayout implementation that shows nesting multiple components and sub-layouts.
-
Anchor Layout
A simple example of anchoring form fields to a window for flexible form resizing.
-
Portal Demo
A page layout using several custom extensions to provide a web portal interface.
ComboBox Samples
-
Basic ComboBox
Basic combos, combos rendered from markup and customized list layout to provide item tooltips.
-
ComboBox Templates
Customized combo with template-based list rendering, remote loading and paging.
Form Samples
-
Dynamic Forms
Various example forms showing collapsible fieldsets, column layout, nested TabPanels and more.
-
Ajax with XML Forms
Ajax-loaded form fields from remote XML data and remote field validation on submit.
-
Custom Search Field
A TriggerField search extension combined with an XTemplate for custom results rendering.
-
Binding: Grid -> Form
New! A grid embedded within a FormPanel that automatically loads records into the form on row selection.
-
Advanced Validation
New! Relational form field validation using custom vtypes.
Toolbars and Menus
-
Basic Toolbar
Toolbar and menus that contain various components like date pickers, color pickers, sub-menus and more.
-
Ext Actions
Bind the same behavior to multiple buttons, toolbar and menu items using the Ext.Action class.
Templates and DataView
-
Templates
A simple example of rendering views from templates bound to data objects.
-
DataView
A basic DataView with custom plugins for editable labels and drag selection of items.
-
DataView (advanced)
New! A more customized DataView supporting sorting and filtering with multiple templates.
Misc Samples
-
StatusBar
New! A simple StatusBar that can be dropped into the bottom of any panel to display status text and icons.
-
StatusBar (advanced)
New! Customizing the StatusBar via a plugin to provide automatic form validation monitoring and error linking.
-
Slider
New! A slider component that supports vertical mode, snapping, tooltips, customized styles and more.
-
Custom Drag and Drop
New! Enabling drag and drop between a DataView and a grid using DragZone and DropZone extensions.
-
QuickTips
Various tooltip and quick tip configuration options including Ajax loading and mouse tracking.
-
Progress Bar
A basic progress bar component shown in various configurations and with custom styles.
-
Panels
A basic collapsible panel example.
-
Resizable
Examples of making any element resizable with various configuration options.
-
Spotlight
A utility for masking everything except a single element on the page to visually highlight it.
-
Localization (static)
Demonstrates fully localizing a form by including a custom locale script.
-
Localization (dynamic)
Dynamically render various Ext components in different locales by selecting from a locale list.