>
以及被重命名的全球对象,其用法基于与2.x中的根本不同的原则。对于初学者而言,它不再是静态对象,而是执行时返回本身实例的函数。现在,YUI的每个执行都会返回一个独立的环境,在该环境中,库的版本和其所有加载组件的版本都可以运行,而不会干扰页面上的任何其他实例。通过扩展,这也意味着库的多个版本可以通过实例化YUI对象的不同版本在同一页面上共存。下面的示例说明了以下原则:
<br> YUI().use('dd-drop', 'anim', function(Y) { <br> // Y.DD is available <br> // Y.Anim is available <br> }>在此执行YUI(),该YUI()返回了执行使用方法的库的实例。至少需要两个参数:库组件,然后在所有操作加载后运行的回调。在上面的示例中,传递的前两个参数是要加载的库组件的名称。最终参数是我们的回调函数,它接收一个对象(示例中命名为y) - 这是包含所有已加载组件的库的实例。因此,就像上面示例中的注释一样,可以在y.dd上找到拖放组件,并且可以在y.anim。
>清洁剂,更简洁的编码样式
该团队所遇到的主要问题之一是确保所有YUI组件的一致内部力学和一致的API。因此,Yui 3现在拥有一个新的类别的层次结构,可以允许这一点。例如,属性类提供GET和设置方法,初始配置支持以及将更改事件属于继承该类的类。还有一个基类从属性继承并提供了一些定型对象的功能,例如所有从其继承的类的初始化器和destructor方法。最后,他们建立了一个从基础继承的小部件类,并提供了通常由小部件使用的通用功能,例如渲染方法 - 一种用于管理小部件渲染的通用模型 - 视频控制器结构,并支持对通用窗口小部件的属性。它还提供插件注册和激活支持。> yui 3克服的另一个问题是,您的脚本需要在其中只包含一个或两个功能的库中加载库的一块库。例如,在YUI 2中,您必须包括整个连接实用程序(重新升级时重量为38kb,12kb)才能进行一些XMLHTTPREQUEST调用。 YUI 3通过将功能分为较小的子模型来解决此问题。这样一来,就无需仅仅以xmlhttprequest的调用来撤回整个实用程序。在YUI 3中,您只需拉下IO实用程序的io-base模块,就可以重量为19kb(4KB缩小)来进行XMLHTTPREQUEST调用。实际上,整个IO实用程序重29KB(7KB缩小),并且比其前身更具功能丰富。例如,现在可以使用IO-XDR子模块进行跨域或XDOMAINREQUEST。
选择和链接>
var dd = new y.dd.drag({
>
节点:'.author'
});
每当yui 3没有逻辑值返回时,它都会试图使方法可链。这是一个在行动中的示例:
>在这里,我们引用了第一个元素,其中class name作者并在其上设置了一个光标样式。
<br> YUI().use('dd-drop', 'anim', function(Y) { <br> // Y.DD is available <br> // Y.Anim is available <br> }>节点和事件faã§ades
YUI 3带有节点实用程序为DOM引入了一个新的抽象层。 YUI 3没有返回对DOM元素的引用,而是返回节点和节点,这极大地简化了DOM相互作用。这是因为节点包括与它们互动所需的所有功能,而不必去分开功能。此外,在需要的情况下,节点暴露的方法会照顾浏览器归一化,因此与它们一起工作的经验尽可能无痛。这是您必须在YUI 2中写的,才能将类名称添加到一个元素:
>
Y.get('.author').setStyle('cursor', 'move');实际上,如果该节点已经在手中,则在一个名为navproducts的变量中说,那么您只能做到这一点:
>
<br> YUI().use('dd-drop', 'anim', function(Y) { <br> // Y.DD is available <br> // Y.Anim is available <br> }
YUI 3简化了与DOM的交互,并且还使用事件fa§ade的想法进行了标准化事件管理。每个事件听众都会收到一个事件faã§ade,该事件照顾所有浏览器的归一化。因此,例如,在YUI 2中,您需要以下代码才能“防止默认”:
Y.get('.author').setStyle('cursor', 'move');>现在您需要做的就是:
YAHOO.util.Dom.addClass("navProducts", "selected");更重要的是,这种行为也延伸到纯自定义事件,因此即使这些事件也可以接收事件,从而使它们可以防止默认情况并停止传播。
>
下一步:让我们将其中一些新方法付诸实践。>
给我看钱!
我要做的第一个任务是加载一个YUI的实例,其中包括动画实用程序,slider窗口小部件,Menunav节点插件和拖放&Drop&Drop Utilities。 Yui去并从Yahoo服务器中获取必要的文件及其依赖关系。然后,它返回带有已加载组件的YUI实例为回调函数,该函数将其接收到名为y的变量:
>
Y.get("#navProducts").addClass("selected");接下来,我创建一个简单的动画,以将页面的内容反弹到视图中。为此,我实例化了一个新的动画对象。我将其传递给具有ID主体的元素的引用,并告诉它将最高值从当前所在的位置为0(现在为-1000px,如示例页面的标记中指定)。我还指定动画应花费三秒钟,并且应该使用Elasticout放松方法。一旦对象实例化,这只是使用运行方法运行它的简单情况:
接下来,我设置了一个滑块对象,以便用户调整页面的基本字体大小。 YUI的字体CSS(示例页面中包含)将页面的基本字体大小设置为13像素。它通过在体元元素上设置字体大小值来实现此操作,从中计算所有其他字体大小。这是我们要操纵的目的,以更改整个页面的字体尺寸。
navProducts.addClass("selected");>
我抓住一个节点引用,用于身体元素,该引用将与滑块一起使用。然后,我创建一个滑块小部件。我将最小值设置为13,最大值将最大值设置为28,因为我希望字体大小保持在这些值之内。然后,我确保滑块的导轨尺寸为100像素宽。最后,我设置了滑块的拇指图像(直接从Yahoo的托管服务器上加载):
<br> YUI().use('dd-drop', 'anim', function(Y) { <br> // Y.DD is available <br> // Y.Anim is available <br> }
>一旦滑块实例化,这只是呈现它的简单问题。我通过调用Slider的渲染方法使用我想要呈现的元素的类名来调用Slider的渲染方法。Slider Widget将在与该类名称匹配的DOM中的第一个元素中呈现
Y.get('.author').setStyle('cursor', 'move');>现在剩下的唯一要做的任务是将滑块连接起来,以便实际调整页面的字体大小。我是通过挂在事件后来做到的。 YUI 3具有标准的事件后,您可以与先前版本相比,可以使事件处理变得容易得多。现在,每当射击ValueChange事件时,我们的身体元素的FontStyle值就会更改:
YAHOO.util.Dom.addClass("navProducts", "selected");>我还设置了一个导航菜单。该页面的内容准备就绪后,我将Menunav节点插件插入NAV节点。然后,它会根据发现的标记自动设置导航菜单 - 就像那样简单!这是代码:
Y.get("#navProducts").addClass("selected");>最后,我通过简单地实例化新的拖放对象并将其引用对我的图片的班级名称来使您的图片真正可拖动。 一旦创建对象,图像就可以拖动。作为额外的触摸,当鼠标悬停在图像上时,我会更改光标,以便显然图像是可拖动的:
navProducts.addClass("selected");摘要
>
看到这是一个底漆,我们几乎没有刮过YUI 3的表面。有关更多阅读,请查看YUI 3.x预览版2页,Satyen Desai在YUI 3上的演示和YUI 3 Forum。经常询问有关YUI 3
的问题> YUI 3中的新事件系统基于事件目标和事件处理程序的概念。事件目标是一个可以发出事件的对象,事件处理程序是对这些事件做出响应的函数。您可以通过扩展EventTarget类来创建事件目标,并且可以使用ON()方法将事件处理程序附加到事件目标。该系统允许在如何处理事件的方式上具有高度的灵活性。
>如何将YUI 3中的io实用程序用于AJAX请求?
>
如何使用YUI 3中的节点和节点级实用程序进行DOM操作?
YUI 3中的节点和节点UTITIS在Yui 3中提供了一个简单且一致的API进行操作。您可以使用y.one()方法获取对单个DOM元素的引用,而y.all()方法可以获取代表元素集合的节点符。这些方法返回节点和结节式实例,这些实例提供了许多方法来操纵它们所代表的元素。>如何使用YUI 3中的窗口小工具来创建可重复使用的UI组件? YUI 3中的窗口基准提供了创建可重用UI的框架。小部件本质上是封装特定功能的视觉组件。您可以通过扩展小部件类并实现定义小部件的行为和外观的方法和属性来创建小部件。>>如何加载和使用YUI 3?加载以及使用YUI 3中的模块加载和使用模块。此方法将其作为参数为加载的模块的名称,并在加载模块后执行回调函数。回调函数接收一个YUI实例作为参数,该参数提供对加载模块的访问。>>我如何使用y.Error()方法完成YUI 3中的错误处理中的错误。此方法使用指定的消息抛出错误,并选择记录错误并停止执行当前代码块。您可以使用try/catch块抓住并处理Y.Error()丢弃的错误。>以上是YUI 3:更轻,更快,易于使用的详细内容。更多信息请关注PHP中文网其他相关文章!