script.aculo.us中的基本效果和预构建效果都很好,但如果你真的想要的东西为什么不做你自己的研究,国产的,自己动手的效果。我们将向您展示如何将基本的影响和建立在他们创建自己的。让我们走了。

首先,在安装说明

现在您已经准备好使用视觉效果引擎!给这个短线一试:


              
已经淡出我!!

调整的影响,试试这样:


              
消退我慢!!

现金出纳机的效果

你现在可以开始构建自己的影响。script.aculo.us中所有的预构建效果实际上都是关于改变元素的样式的,但实际上没有什么阻止你操纵元素的内容。对我们本土的效果,我们会做。

假设您有一个使用AJAX从购物篮中添加和删除产品的在线商店。当然,你可以显示一个篮子里,所有产品的总每次发生变化时自动更新它。我们想要给用户一个线索,这总正确更新,反映了当前内容的篮子里。你可以用黄褪色技术,但是我们想把自己的风格和使用更时髦的东西。

所以,我们想要效仿老式收银机的外观和感觉,和显示的变化总与一个全新的国产效果,动态调整从老总到新的价值。

有一个计划

利用引擎提供设施的影响,你应该坐下来,想想自己真的效果。重要的是想出一个方法,它显示一个特定的框架效应引擎会问你的方法。

对于我们的收银机效应,这意味着在效应的持续时间内,在帧的每个渲染上,它应该显示表达式的结果start_price + (price_delta *位置),在哪里price_delta = end_price - start_price位置是指多大效果在0到1的范围内完成。

例子:假设总当前显示是100.00美元,我们想要改变,至150.00美元。在位置上显示的值0.5(半途而废)125.00美元$ 100.00 +(50.00 * 0.5)price_delta = 150.00 - 100.00美元= 50.00美元

第一帧(位置0):100.00美元中途(0.5位置):125.00美元最后一帧(位置1):150.00美元

影响骨架

视觉效果引擎提供了一个基类来构建自己的影响。

Effect.Base这样使用:

CashRegister=Class.create();Object.extend(Object.extend(Effect.CashRegister.prototype,Effect.Base.prototype),{//我们稍后再填};;

下一步,我们需要告诉我们的新效果要做什么。

initialize()方法

作为研究之前,我们想要一个转换从一个到另一个价格,和

需要找出δ在我们开始之前的效果。convinience,我们也只是

想要的值显示在元素作为一个起点,所以我们

不必记得“老”价格:

initialize:函数(元素,){/ /可选的第三个参数”选项”var选项=参数[2]| | { };//$是Prototype this..=$(.)中document.getElementById的快捷方式;//查找当前价格并在没有美元符号this.startPrice=parseFloat(this...innerHTML..ring(1))的情况下对其进行解析;//设置finishPrice并预计算delta this.finishPrice=price;this.delta =(this.finishPrice-this.startPrice);/ /开始提供的方法是影响发动机/ /应该初始化()方法的最后一行this.start(选项);},,

使用短的注意innerHTMLDOM元素的属性:它既不是善还是恶,就在那里,在所有的浏览器。所以,一定要用它。它的速度远远超过任何XML仰卧起坐DOM。

update()方法

繁重的效果,我们需要定义update()方法。调用此方法反复的视觉效果为每个帧渲染引擎。它的位置参数的范围在0到1。

update:function(.){//calculationvalue并将其转换为./cent数组var value=(this.startPrice+(this.delta*.)).toString(..('.');/ /确保逗号后两位数var分= value.length = = 1 ?‘00’:(值[1],长度==1?价值[1]+”0”:价值[1].substring(0,2);//Element.update from Prototype设置元素Element.update(this..,“$”+value[0]+“.”+.”;}

就是这样。准备好你的效果。实际使用它,叫它通过使用(例如):

新Effect.CashRegister(“总”,150);;

如果你想要一点,“慢镜头敬畏”(你会发现宽松,自动应用),尝试:

新Effect.CashRegister(“总”,150年,{时间:10});;

这是删除注释的完整代码。

CashRegister=Class.create();Object.extend(Object.extend(Effect.CashRegister.prototype,Effect.Base.prototype),{初始化:函数(元素,价格){var选项=参数[2]| | {};.=$(.);this.startPrice=parseFloat(this...innerHTML..ring(1));完成价格=价格;this.delta =(this.finishPrice-this.startPrice);this.start(选项);},update:function(.){var value=(this.startPrice+(this.delta*.)).toString(..('.');var.=value..==1?‘00’:([1]值],.==1?价值[1]+”0”:价值[1].substring(0,2);Element.update(this.element“$”+value[0]+“.”+.”;});;

更多的事情去探索

当然,我们这里只触及表面,这里有一个快速浏览其他东西等待发现内部的视觉效果引擎:

回调

在当你的所有阶段运行效果,,各种回调可以用来做进一步的处理。例如,如果要在效果完成之后发布其他效果,您可以使用后整理回调函数:

新Effect.CashRegister(“总”,150年,{后整理:函数(效果){新Effect.Highlight (effect.element)}});;

转换

转换控制宽松的效果,+可以用于一些更高级的控制效果应该如何呈现自己。看到script.aculo.us wiki的更多信息

队列

队列是一个工具来构建功能强大的效果,基于时间线的动画。这是一个伟大的教程

那你在等什么呢?走出去,开始创造你自己精彩的视觉效果世界。

关于Scriptaculous

除此之外,,script.aculo.us包括一个有很多特色的JavaScript引擎的影响,在网络上提供了易于使用的视觉效果。主要目标是启用AJAX支持的站点,为用户提供视觉反馈,否则谁会不知道那个页面更新发生在幕后。第二个用是页内交互顺畅(例如当隐藏面板打开,它可以顺利滑出而不是弹出)。

视觉效果引擎第一次来到生活的一部分Ruby on Rails,尤其是Prototype JavaScript框架,在AJAX非常新鲜的时候,黄褪色技术有一个复兴。为了在2005年6月启动script.aculo.us,完全重写引擎提供一个坚实的动画框架,很容易扩展。

如果你从来没有听说过,有看吗演示页面在script.aculo.us文档wiki中。为一个很好的使用丰富的交互性页内访问苹果的孔径产品网站,并尝试“关键特性的光圈”框在屏幕的右边(向下滚动一下),和wollzelle主页(尝试投资组合中的引用部分)。

在一个web应用程序,使用您可能想要查看流畅逗趣视频(大多数的东西在影响引擎的fluxiom)的发展。

你不需要担心

基于时间的动画框架采用script.aculo.us

负责所有繁琐的背景处理和高级功能,,

所以你永远不必担心客户端/浏览器的渲染速度,,

容易进出和排队时间的东西。

你会自动获取各种调整选项和回调功能

真正调整影响到你喜欢(当然提供的附带影响

理智缺省,所以你可以放弃一行JavaScript代码,你所有的设置)。

同时,什么是工作(和做!Internet Explorer 6,Firefox 1.0和以后,加上Safari。