MooTools

advertisement
MooTools
________________________________
Aakash Juneja
Truc Pham
Introduction
MooTools
is a lightweight abstraction layer between
the browser and the code
was authorized and released in
September 2006 by Valerio Proietti.
MooTools’ Components








Core: A collection of utility functions
More: An official collection of add-ons
Class: The base library for Class object
Natives: A collection of JavaScript Native Object
enhancements.
Element: enhancements to the HTML Element object.
Fx: An advanced effects-API to animate page elements.
Request: Includes XHR interface, Cookie, JSON, and
Window: Provides a cross-browser interface to clientspecific information.
Getting started
Need to know Javascript
 Elements
var myElement = new Element(“div”);
myElement.set(“html”, “I am new”);
myElement.setStyle(“border”, “1px solid
#519CE8);
$(“myBox”).grab(myElement);
 Adding text to elements is easy too
$(“myBox”).set(“html”, “Hi there, how are you?”);
Elements (continued)
 $(“someElementID”);
 $(“anyElement”).getElement(“any css selector”);
Examples:
$(“anyElement”).getElement(“span”);
$(“anyElement”).getElement(“a”);
$(“anyElement”).getElement(“input[type=text]”);
The $function
 //classical method for getting an element
var myElement =
document.getElementByID(“myElement”);
 //MooTools’ way:
var myBetterElement = $(“myElement”);
 //this returns reference as an Array of all tags on
the page
var ps = $$(“p”);
Set Properties
 //setting properties is easy in MooTools
$(“myElement”).setProperty(“title”, “I am your element”);
 //removing works almost the same way
$(“myElement”).removeProperty(“title”);
 //getting values is easy
$(“myElement”).getProperty(“id”);
 //similar methods
setProperties, removeProperties, getProperties
The core of MooTools
MooTools stands for My Object Oriented
Tools.
Emphasizes modularity and code reuse with
MooTools Class object.
Class is an object of key/value pairs that can
contain either properties or methods.
Inheritance
var Animal = new Class({
initialize: function(name) {
this.name = name;
}
});
var Cat = new Class({
Extends: Animal,
talk: function() {
return 'Meow!';
}
});
var Dog = new Class({
Extends: Animal,
talk: function() {
return 'Arf! Arf';
}
});
Inheritance
var animals = {
a: new Cat('Missy'),
b: new Cat('Mr. Bojangles'),
c: new Dog('Lassie')
};
Object.each(animals, function(animal) {
alert(animal.name + ': ' + animal.talk());
});
// alerts the following:
// Missy: Meow!
// Mr. Bojangles: Meow!
// Lassie: Arf! Arf!
A SlideShow app using MooTools
var SimpleSlideShowDemo = new Class({
Implements: [Options, Events],
options: {
slides: [],
startIndex: 0,
wrap: true
},
initialize: function(options){
this.setOptions(options);
this.addSlides(this.options.slides);
if(this.slides.length) this.showSlide(this.options.startIndex);
},
…………
A SlideShow app using MooTools
addSlides: function(slides){
$$(slides).each(function(slide){
this.slides.include($(slide));
slide.addEvent('click', this.cycleForward.bind(this));
…………
cycleForward: function(){
if($chk(this.now) && this.now < this.slides.length-1)
this.showSlide(this.now+1);
else if ((this.now) && this.options.wrap) this.showSlide(0);
else if(!$defined(this.now))
this.showSlide(this.options.startIndex);
},
A SlideShow app using MooTools
showSlide: function(iToShow){
if (this.fading) return;
var now = this.now;
var currentSlide = this.slides[now];
var slide = this.slides[iToShow];
var fadeIn = function (s){
this.fading = true;
s.setStyles({
display:'block',
visibility: 'visible',
opacity: 0
});
s.get('tween').start('opacity', 1).chain(function(){
this.fading = false;
this.fireEvent('onShow', [slide, iToShow]);
……………..
A SlideShow app using MooTools
window.addEvent('domready', function(){
new SimpleSlideShowDemo({
slides: $$('div.slide')
});
new SimpleImageSlideShowDemo({
imgUrls: [
"http://download.com/i/dl/media/dlimage/10/87/78/108778_medium.jpeg",
"http://download.com/i/dl/media/dlimage/10/87/79/108779_medium.jpeg",
"http://download.com/i/dl/media/dlimage/10/87/81/108781_medium.jpeg"
],
container: $('imgContainer')
});
});
http://mootorial.com/wiki/mootorial/09-howtowriteamootoolsclass
Why choose MooTools?
 MooTools can do all jQuery (sorry for picking on you) can
do.
Frameworks Mottos
jQuery is a fast and concise JavaScript Library that simplifies HTML document
traversing, event handling, animating, and Ajax interactions for rapid web
development. jQuery is designed to change the way that you write JavaScript.
MooTools is a compact, modular, Object-Oriented JavaScript framework designed for
the intermediate to advanced JavaScript developer. It allows you to write powerful,
flexible, and cross-browser code with its elegant, well documented, and coherent API.
 MooTools focuses on inheritance model.
 MooTools encourages code reuse and modular designs
Some of the best MooTools examples
http://www.electricprism.com/aeron/slideshow/
http://digitarald.de/project/remooz/1-0/showcase/flickr-big/
http://www.efectorelativo.net/laboratory/noobSlide/
http://www.nogray.com/time_picker.php.
Download