Leyendo el blog de Andres veo una interesante traduccion que menciona 10 punto bastante interesantes de porque MooTools[web] es tan famoso, la lista original fue realizada por Christoph , por mi lado desde el comienzo he utilizado prototype[web] sin embargo ultimamente he estado tentado a probar esta libreria ya que he utilizado algunos scripts bastante interesantes y funcionan muy bien y son bastante potentes.
Mucha gente cree que MooTools es únicamente para hacer animaciones, efectos a todo elemento disponible en la página. Y MooTools tiene un montón de cosas más que hacen de este framework una maravilla, drag&grop, manipulación del DOM, Extensión de funciones, Ajax, manipulación de cookies, assets, …
var droppables = $$('div.dropper');
var container = $('containment');
new Drag.Move('dragger', {'container': container, 'droppables': droppables});
droppables.addEvent('over', function(){
this.setStyle('background-color', '#000');
});
droppables.addEvent('leave', function(){
this.setStyle('background-color', '#ff3300');
});
droppables.addEvent('drop', function(){
this.setStyle('background-color', '#face8f');
});
MooTools no es un solo un framework, es completamente modular y puedes personalizar no que necesitas descargar para ahorrarte peso de javascript. Esto quizas el usuario final no entienda o no le llame la atención, pero para un desarrollador es algo realmente digno de alabar ya que es realmente complicado conseguir un alto de grado de modularidad.
Leer el código de MooTools es como leer un libro, la versión con código incluido es realmente explicita y simple de entender.
/*
Function: $type
Returns the type of object that matches the element passed in.
Arguments:
obj - the object to inspect.
Example:
>var myString = 'hello';
>$type(myString); //returns "string"
Returns:
'element' - if obj is a DOM element node
'textnode' - if obj is a DOM text node
'whitespace' - if obj is a DOM whitespace node
'arguments' - if obj is an arguments object
'object' - if obj is an object
'string' - if obj is a string
'number' - if obj is a number
'boolean' - if obj is a boolean
'function' - if obj is a function
'regexp' - if obj is a regular expression
'class' - if obj is a Class. (created with new Class, or the extend of another class).
'collection' - if obj is a native htmlelements collection, such as childNodes, getElementsByTagName .. etc.
false - (boolean) if the object is not defined or none of the above.
*/
function $type(obj){ ....}
Esto ocurre con todas las comunidades, así que no me parece un punto muy importante. Pero el foro de MooTools no para de recibir preguntas y recibir respuestas.
Board statistics Total number of registered users: 5056 Total number of topics: 5275 Total number of posts: 26414
MooTools te permite desarrollar con un código orientado a objetos, esto debido a la capacidad que tiene de extender los objetos nativos del lenguaje.
$('loadJson').addEvent('click', function(e) {
e = new Event(e).stop();
var url = 'http://demos.mootools.net/demos/Json.Remote/data.js';
var request = new Json.Remote(url, {
onComplete: function(jsonObj) {
addImages(jsonObj.previews);
}
}).send();
});
El nativo typeof()
de Javascript devuelve cosas similares a “String
“, “Number
“,… pero con MooTools $type
nos lleva a otro nivel.
var Monkey = new Class({
initialize: function(){
this.fruits = [];
},
giveFruit: function(fruit){
//The Monkey only loves fruits!
if($type(fruit)=='fruit')
this.fruits.push(fruit);
return this;
}
});
var Banana = new Class({
$family: 'fruit'
});
new Monkey().giveFruit(new Banana());
Basta ver el código para ver lo fácil que es crear un elemento con MooTools.
new Element('div', {
'id': 'myDiv',
'class': 'someClass',
'styles': {
'width': '0px',
'height': '0px'
},
'events': {
'click': function(){
alert(this.getText()); //Alerts Hello
}
}
}).setText('Hello').injectInside(document.body).effects().start({
'width': [0, 200],
'height': [0, 100]
});
MooTools incorpora su propia gestión de eventos. Puedes gestionar los eventos de todo: Clases, elementos, …
La opción más simple, la de añadir una gestión de eventos sobre un elemento sería algo tan simple como esto:
Element.Events.extend({
'keyenter': {
type: 'keyup',
map: function(e){
return e.key=='enter';
}
}
});
$('myInput').addEvent('keyenter', function(){
doSomething...
e.stop(); //Paramos la ejecución del proceso.
});
Hacer que los elementos de tu página sean dragables (movibles) es tan fácil como esto:
$('myElement').makeDraggable();
En este mismo blog he comentado muchas de las nuevas extensiones y nuevas funcionalidades que MooTools nos ofrece, y gracias a la comunidad de detrás esto irá creciendo y aportando nuevas y valiosas aplicaciones, que harán las delicias de todos.
via Anieto2k
UIverse es un proyecto Open-Source en donde diseñadores y desarrolladores web pueden encontrar más de…
Foto de Element5 Digital en Unsplash La inteligencia artificial (IA) está revolucionando el mundo, y…
La inteligencia artificial ha revolucionado la forma en que trabajamos, y ChatGPT, basado en la…
Esta web usa cookies.