位置:海鸟网 > IT > JavaScript >

40个实用的轻量级JavaScript库

流行的JavaScript库,如jQuery, MooTools, Prototype, Dojo和YUI等,完成起常见的JavaScript任务来得心应手。这些JS库为客户端动作(events)、动画特效(effects),和AJAX应用等提供很多现成的函数。而且如果这些库中的某一个无法直接达到你要的效果,还可能会有相关插件满足你的要求。

JavaScript库的灵活性给我们的工作提供方便,但有利也有弊——比如说JavaScript文件过大的问题。尽管放弃这些著名的JavaScript库能显示你的聪明才智,但你可能还是会愿意采用一些体积小巧、专注于特定任务的JavaScript库。

以下是40个帮助你达到特定目的的独立JavaScript库。 网上能用的当然不只这些,但每位网页设计师和程序员应该都能在这里有所收获。

1. 表单

wForms
wForms 是一个开源的、 无入侵的(unobstrusive)注*代码库,能够简化大部分与表单相关的常用JavaScript函数。 它能对表单的用户输入值进行验证,只需为表单元素添加一个特定的类即可使用。另外,wForms 还具有强大的表单同步(例如“全选/全不选”)和条件表单(如,当x被选择则显示y)功能。

注* 这个词也被译为“不唐突”,“有的放矢”等。意即JavaScript代码和HTML代码分离,同时也对不同版本浏览器选择性地做出反应,以提高用户体验。更多解释,请参照“”。译者认为“无入侵”贴合英文原文,作为术语更加简洁易懂,应该成为这个词的通用译法。

wForms

Validanguage
Validanguage 是一个无入侵的 JavaScript表单验证框架。它有一个继承逻辑,可以全局定义,也可以对每个表单或每个元素分别定义。利用作者提供的两个API,以及诸如综合的AJAX支持(integrated AJAX support)、缓存和调用函数等特性,该框架可以提供强健的(robust)验证体验。两个API用以高级设置,分别是加在注释里的像HTML语言的 API和基于JavaScript对象的API。

Validanguage

LiveValidation
LiveValidation是一个轻量级的JavaScript库,提供一系列验证函数。除了经典验证法,此库还具有实时验证(live validation)特性,能根据你键入的文字实时控制特定区域。 Ruby on Rails的开发者会发现LiveValidation异常好用,因为二者的命名规范和参数设置非常相似。虽然它是独立库,不过也有一个Prototype版注*。

注* 也就是依赖于Prototype库,但是本身代码更简洁的版本

LiveValidation

yav
一个功能强大、可扩展、使用灵活的表单验证代码库。yav可处理多种情况,从日期、email、整数之类的基本验证到和自定义正则表达式之类的高级应用,都得心应手。该库内建AJAX支持,并且可以轻易在每个对象层自定义错误显示信息。

qForms
处理表单的完全解决方案。为开发者提供诸如多样验证规则,阻止多次提交,锁定/禁用域等特性。

formreform
不用表格来实现多栏布局通常都很有挑战性。这个小巧的代码库能够把一个简单表单转换成一栏、两栏或四栏格式化布局的表单。利用formreform能自动让表单样式适应任何设计。

formreform

2. 动画

$fx()
$fx() 是一个用户为HTML元素添加动画效果的轻量级代码库。利用此库,你可以指定在一定时间内改变任何CSS属性。对于复杂动画,你可以合并效果,给各效果分组,让它们链式反应或者同时发生。你还可以为每一步动画设定不同的回调动作,进行更深入的自定义。

$fx() JavaScript Animation Library

JSTweener
补间动画的JavaScript库。它的API和著名的ActionScript补间动画引擎 Tweener 相似。你可以调用动画时间,定义形状变换方式和延迟。在几乎任何时间点(如onStart – 开始时, onComplete -完成时, onUpdate – 更新时),你都可以引发新动作。

JSTweener

Facebook Animation
用于创建基于CSS的自定义动画的强大代码库。利用一两行Facebook Animation,你就能改善用户界面。本代码库的语法遵循FBJS(在Facebook实用工具中使用的代码库),一旦学会,你也就具备了创建Facebook实用工具的能力!

FX
一个轻量级代码库,拥有和YUI类似的使用句法。FX可以为几乎所有CSS属性创建补间动画。支持颜色和滚动动画。你只需要设计任意对象,任意属性的起始值和结束值就够了。