一个简短的yahoo YUI介绍

摘要:
YUI 是 Yahoo! User Interface 的缩写,这是由 Yahoo! 所开发出来的工具库,包含了多种程式工具、函数库和网页操作介面,能够更快速的开发互动性高、丰富的网站应用程式,尤其是那些使用到 DOM、DHTML 和 Ajax 的网页。YUI 全部都是使用 Javascript 写出来的(其中也包含了一些 CSS ),而且是公开给大家免费使用的 Open Source 软体。為什麼要使用 YUI ?目前 YUI 仍在持续发展的阶段,最新的版本是 2.0x,在YUI 的官方网站可

YUI 是 Yahoo! User Interface 的缩写,这是由 Yahoo! 所开发出来的工具库,包含了多种程式工具、函数库和网页操作介面,能够更快速的开发互动性高、丰富的网站应用程式,尤其是那些使用到 DOM、DHTML 和 Ajax 的网页。YUI 全部都是使用 Javascript 写出来的(其中也包含了一些 CSS ),而且是公开给大家免费使用的 Open Source 软体。
為什麼要使用 YUI ?

目前 YUI 仍在持续发展的阶段,最新的版本是 2.0x,在YUI 的官方网站可 以下载全部的套件,也有详细的说明档案。目前看到 YUI 的相关资源几乎都是英文的.

YUI 很重要的功能之一就是帮助减少不同瀏览器之间的差异性,让你只要使用一种写法就能通吃所有瀏览器,也能降低 IE 狂吃记忆体的当机问题。
因此 YUI 实在是不可或缺的啊!在日后教大家的范例裡面,也会大量使用到 YUI 的。
YUI 的家族成员

YUI 包含的东西很多,可以先粗分為三大部份:工具函数库、CSS 工具以及操作介面库。其中各大项裡面的内容简单介绍如下:
工具函数库(YUI Library Utilities):

The YAHOO Global Object : 这是 YUI 的核心物件,每个使用到 YUI 的页面都必须先载入这个物件。它主要的用途是,提供所有 YUI 裡的程式有共同单一的命名空间( namespace ),以及一些共用的物件方法(method)。

Event Utility : 事件工具,帮忙处理网页中发生的事件,例如滑鼠按下、滑鼠经过、表单送出… 等等都属于事件。它也提供了监听事件和自订事件的功能。

DOM Collection : DOM 工具,当你要透过 DOM 来动态更改网页中的元素时,尤其是对于动态变化 CSS 样式和避免不同瀏览器之间的差异性,这个工具会十分的有用。

Connection Manager : 连线管理程式,要使用 Ajax 就一定会用到的啦!这个工具大幅简化了 XMLHttpRequest 物件的使用方式。

Drag and Drop Utility : 拖曳工具,想要在网页中製作出可以用滑鼠拖曳的操作介面吗?就是它啦!还没试过新版的 Yahoo! 信箱吗?像 Outlook 一样可以拖拉放哦!

Animation Utility : 动画工具,想让网页增添动画效果,但又不要依靠 Flash 吗?这个工具就是专门来製作移动、缩放、Alpha ( 淡入淡出 ) 等动画效果用的。从今以后光靠 DHTML 製作动画就简单多囉!

 

CSS 工具(YUI Library CSS Tools):

CSS Page Grids : 网页版面工具,你是否常常為使用 CSS 切割版面而头痛呢?有了这个工具之后,不论是两栏、三栏或多栏的版面都不用担心了!

CSS Fonts : 字体工具,替不同的瀏览器统一了字体、间距等样式,用来避免不同瀏览器之间的差异性。

CSS Reset : 这也是用来统一不同瀏览器之间的差异性,但是针对所有的网页元素样式。

 

操作介面库(YUI Library Controls):

AutoComplete : 自动完成。

Calendar : 月历。

Container : 容器?包含了模组、重叠的图层、面板、工具提示、对话框以及简易对话框等,设计应用程式时会使用到的使用者介面。

Logger : 提供了很简单的方式在程式码中读写讯息,非常方便除错使用。别再用笨笨的 alert 啦!

Menu : 选单。不论是普通的选单、弹出式选单、滑鼠右键选单,都可以很容易做到。

Slider : 可以拉动的滑桿,例如部落格设定裡面,调整透明度时的滑桿,就是用这个做的。

TreeView : 树状选单。想製作和档案总管一样的树状选单吗?或是可以多层展开选单,这裡已经提供了现成的物件给你使用了!

 

去YUI 的官方网站看看?

CSS 基础 (CSS Tools) 虽说 CSS 很容易上手,但当你玩到深的时候,就会发现有很多的问题,这点由 Yahoo! 有人专门在写 CSS 的架构就可以看出来。你可以把 YUI 提供的视為一个网页所必需的基础:帮你解决掉每个瀏览器预设样式的不同、字型大小的问题,甚至复杂的排版解决方案。笔者强烈建议要好好学这套工具(可以参考下面的联结),并且嵌入在每一个网页当成基础喔!

JavaScript 核心 (Core) 若问我 JavaScript 中最常用的功能是什麼?我的答案会是事件处理、DOM 物件取得及设定,及瀏览器侦测莫属了! 而这些基本功能在不同的瀏览器却有不同的做法,实在另人头大,因為不管写到什麼都要去解决跨瀏览器的问题,会让程式码备增! YUI 知道开发者的痛苦,也為了自己其它功能的开发,把这些核心功能包装得好用又强大。
记得在使用 YUI 的任何功能,都一定要包含核心的 yahoo, event, 与 dom 的函式库喔!

Javascript 工具组 (Utilities) 除了核心的功能外,进阶的开发者会写动画特效、拖拉、或者是 AJAX 等的功能。 YUI 把这些功能包装地就像瑞士刀一样,既轻巧又好用。
值得一提的,大家所关注用 CSS 及 XPath 语法取得 DOM 物件的方式也在 Select 工具组实作出来,喜欢用 jQuery 的可以考虑跳槽了 :-D。

Javascript 控制项 (Controls/Widgets) 控制项跟工具组不同的地方在于,它本身会有一个介面,而 YUI 工具组则没有、只有功能性。 像是你在 Yahoo! 打字搜寻时会有的搜寻建议以及中间的页籤组 ,还有常见的 HTML 编辑器皆属于此一范畴。
从 2.4.0 开始,YUI 更提供了图表控制项,利用相同的 JavaScript,可以轻鬆地產出用 Flash 做成的图表,这样的混合真是太讚了!


免责声明:文章转载自《一个简短的yahoo YUI介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用C#打造"QQ对战平台挤房器"Android2.3.7源码结构分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ftp命令

ftp命令是标准文件传输协议的用户界面。Ftp是在TCP/IP网络上的计算机之间传输文件的一种简单有效的方法。它允许用户传输ASCII文件和二进制文件。用户可以在目录中上下移动,列出目录内容,将文件从远程计算机复制到本地计算机,并将文件从本地计算机传输到远程系统。它用于确定用户可以对要传输的文件进行何种访问。用户显然需要知道进行ftp会话的计算机的名称或IP...

禅道从windows迁移到linux

windows下图片路径/zentao/www/data/upload/1备份到Linux下路径/opt/zbox/app/zentao/www/data/upload/1二、Linux下安装禅道注意一定要安装相同版本的禅道2.1、安装禅道有很多方法,禅道官网也有详细说明,这里主要讲linux用一键安装包及遇到的问题2.2、下载安装包禅道官网下载界面很乱,大...

oracle的序列号(sequence)

Oracle的自动递增列应使用序列号。在初始化阶段,需要手动创建序列,然后在插入序列时手动读取分配给相关字段(如ID)的序列的nextval。这很麻烦。但是,这对于SQL Server来说不是问题,可以获得。oracle的序列号也有缓存。默认情况下,一次生成20个。如果没有用完,它们可能会丢失,这可能会导致ID不一致。此外,有时这可能会引起误解。例如,我有一...

H3C 12508 收集诊断信息

案例:H3C12508单板卡出现remove状态,需要配合研发收集诊断信息。)总体:12500交换机返回三种文件----故障时诊断信息,主备单板的日志文件,主备单板的诊断日志操作步骤:一、故障时诊断信息:disdiagnostic-informationdiag收集必须在问题出现的时候,单板重起之前执行。在save时请选择Y保存到CF卡方式。一般情况下,此命...

iReport制作报表,字数过多换行问题

1.当字段中显示的数据太长而无法放入表中时,需要自动换行。选择要更改的表(显示动态内容的字段),并将Stretchwithoverflow属性设置为选中。未选中前:选中后:2.然而,桌子坏了,非常难看。此时,我们需要设置一个属性,使同一行中的其他字段保持与换行字段相同的高度。此时,我们需要框选要显示在整行中的动态字段和表;将属性StretchType设置为R...

Vant 实现 上拉加载更多

Vant的List组件默认支持瀑布流滚动加载。官方的示例是用定时器模拟的数据。我们在项目实战中,肯定是结合ajax请求处理的。那么我们该如何实现这个效果呢?Vant的List组件使用方法这里就不详细说明了,官方文档已经写的很详细了。直接上项目中的实战代码://itemList换成你自己的数据//没数据时显示˂divclass="no-data"v-if="!...