MooTools
MooTools is a lightweight, object-oriented JavaScript framework. It is released under the free, open-source MIT License.
Overview
MooTools provides the user with a number of options beyond native JavaScript. These include:- An extensible and modular framework allowing developers to choose their own customized combination of components.
- MooTools follows object-oriented practices and the DRY principle.
- An advanced effects component, with optimized transitions such as easing equations used by many Flash developers.
- Enhancements to the DOM, enabling developers to easily add, modify, select, and delete DOM elements. Storing and retrieving information with Element storage is also supported.
History
Valerio Proietti first authored the framework and released it in September 2006 taking as his inspiration Prototype and Dean Edward's . MooTools originated from Moo.fx, a popular JavaScript effects library released in October 2005 by Valerio Proietti as an add-on to the Prototype Javascript Framework. It can be used as a lighter alternative to script.aculo.us or other, bigger libraries. It provides simple, basic effects, and guarantees a small library size.Whereas Prototype extended—prototyped—many of JavaScript's native String, Array, and Function objects with additional methods, Proietti desired a framework that further extended the native Element object as well to offer greater control of the Document Object Model.
Components
MooTools includes a number of components, but not all need to be loaded for each application. Some of the component categories are:- Core: A collection of utility functions that all the other components require.
- More: An official collection of add-ons that extend the Core and provide enhanced functionality.
- Class: The base library for Class object instantiation.
- Natives: A collection of JavaScript Native Object enhancements. The Natives add functionality, compatibility, and new methods that simplify coding.
- Element: Contains a large number of enhancements and compatibility standardization to the HTML Element object.
- Fx: An advanced effects-API to animate page elements.
- Request: Includes XHR interface, Cookie, JSON, and HTML retrieval-specific tools for developers to exploit.
- Window: Provides a cross-browser interface to client-specific information, such as the dimensions of the window.
Browser compatibility
- Safari 3+
- Internet Explorer 6+
- Mozilla Firefox 2+
- Opera 9+
- Chrome 4+
Emphasis on modularity and reusability
Class is an object of key/value pairs containing either properties or methods. Class is effortlessly mixed and extended with other Class instantiations allowing for the most excellent focus of MooTools: Code reuse achieved through maximizing the power of JavaScript's prototypical inheritance but in a Class object syntax more familiar to classical inheritance models.
Object-oriented programming
MooTools contains a robust Class creation and inheritance system that resembles most classically based Object-oriented programming languages. For example, the following is MooTools' equivalent of the examples in Wikipedia's polymorphism page:var Animal = new Class;
var Cat = new Class;
var Dog = new Class;
var animals = ;
Object.each;
// alerts the following:
//
// Missy: Meow!
// Mr. Bojangles: Meow!
// Lassie: Arf! Arf!