présentation d'une nouvelle bibliothèque JavaScript.
Bonjour, je suis Gabriel Juchault, bachelier de 17 ans et demi. Je suis développeur en plusieurs langages, dont le JavaScript.
Origine
J'ai créé ce framework JavaScript pour proposer une alternative rapide et fiable aux principaux existants, comme jQuery et MooTools, auxquels on reprochait soit de déformer le langage, d'étendre les objets natifs, ou encore d'être trop lourds, ou incompréhensibles à la lecture.
J'ai donc décidé de développer mon propre framework, Fly.js.
Le projet
Fly.js est donc un framework javascript léger (±70 Ko non compressé, ±45 Ko compressé, ±16 Ko compressé et gzippé). Il dispose de nombreux "modules" :
- Core : fonctions internes (mais qui peuvent être utiles aux développeurs), tels que merge, isFunction ou encore trim
- Selector : utilisation de Sizzle, à moins que le navigateur possède la fonctionnalité querySelectorAll
- Parseur XML compatible tous navigateurs (cross-browser)
- Intégration de la librairie JSON3 (et pas JSON2 qui utilise des équivalents de eval), si le JSON n'est pas proposé par le navigateur, toujours pour garder l'utilisation cross-browser.
- Le module Ajax qui propose une fonction unique et simple, pour permettre aux développeurs de faire leur requêtes Ajax, le plus simplement possible
- Browser : limité en nombre de navigateurs et de moteurs (webkit, opera, ie, chrome, safari, firefox, gecko); il est capable de déterminer le moteur, la version et le navigateur dans la liste ci-dessus). Il ne vaut pas une librairie complète de détection de fonctionnalités telle que modernizr
- Cookies : creation, lecture, suppression
- Manipulation du Dom et navigation dans ce dernier : environ 60 fonctions sont disponnibles pour pouvoir modifier le contenu html, s'y déplacer, ajouter des évennements ou les déclancher, etc. (liste des fonctions à la fin de la liste)
- Animation : fly.js supporte nativement les animations, sur tous les élements, il sait animer les propriétés avec les couleurs, et avec des fonctions spéciales appelées "easing": effets de saut, elastique, etc.
Liste des fonctions du module "Dom":
add
addClass
after
append
appendTo
attr
before
bind
brothers
children
clone
content
css
each
empty
eq
filter
find
first
get
has
hasClass
height
hide
html
id
index
innerHeight
innerWidth
is
last
length
next
nextAll
nextUntil
not
offset
outerHTML
outerHeight
outerWidth
parent
parents
position
prepend
prependTo
previous
previousAll
previousUntil
remove
removeAttr
removeClass
replaceWith
scroll
show
slice
toArray
toSource
toString
toggleAttr
trigger
unbind
width
addClass
after
append
appendTo
attr
before
bind
brothers
children
clone
content
css
each
empty
eq
filter
find
first
get
has
hasClass
height
hide
html
id
index
innerHeight
innerWidth
is
last
length
next
nextAll
nextUntil
not
offset
outerHTML
outerHeight
outerWidth
parent
parents
position
prepend
prependTo
previous
previousAll
previousUntil
remove
removeAttr
removeClass
replaceWith
scroll
show
slice
toArray
toSource
toString
toggleAttr
trigger
unbind
width
animate
delay
hide
highlight
show
fadeIn
fadeOut
fadeTo
fadeToggle
slideUp
slideDown
slideToggle
delay
hide
highlight
show
fadeIn
fadeOut
fadeTo
fadeToggle
slideUp
slideDown
slideToggle
linear
easeInQuad
easeOutQuad
easeInOutQuad
easeInCubic
easeOutCubic
easeInOutCubic
easeInQuart
easeOutQuart
easeInOutQuart
easeInQuint
easeOutQuint
easeInOutQuint
easeInSine
easeOutSine
easeInOutSine
easeInExpo
easeOutExpo
easeInOutExpo
easeInCirc
easeOutCirc
easeInOutCirc
easeInElastic
easeOutElastic
easeInOutElastic
easeInBack
easeOutBack
easeInOutBack
easeInBounce
easeOutBounce
easeInOutBounce
easeInQuad
easeOutQuad
easeInOutQuad
easeInCubic
easeOutCubic
easeInOutCubic
easeInQuart
easeOutQuart
easeInOutQuart
easeInQuint
easeOutQuint
easeInOutQuint
easeInSine
easeOutSine
easeInOutSine
easeInExpo
easeOutExpo
easeInOutExpo
easeInCirc
easeOutCirc
easeInOutCirc
easeInElastic
easeOutElastic
easeInOutElastic
easeInBack
easeOutBack
easeInOutBack
easeInBounce
easeOutBounce
easeInOutBounce
Le projet maintenant en beta, il y a de moins en moins de bugs, et il y a un petit problème de rapidité (si quelqu'un a des idées, je suis preneur). Il est actuellement en développement.
Objectifs
Le projet maintenant en beta, il y a de moins en moins de bugs, et il y a un petit problème de rapidité (si quelqu'un a des idées, je suis preneur). Il est actuellement en développement.
Originalité
Le projet se démarque par la diversité de ses fonctionnalités et dans le même temps par son chargement rapide, et sa petite taille (3 fois plus petit que jQuery, et moins de 5 millisecondes pour le charger contre 20 pour jQuery). Il est de plus très facile "à lire", à comprendre, et donc à améliorer !
Il ne se veut pas comme un nouveau langage, il ne touche pas à un autre objet que "flyjs", sauf à ajouter un $ à window.
Ce framework est néanmoins plus long sur les fonctions (en moyenne 20% par rapport à jQuery).
Site Web : https://github.com/Extaze/fly.js/
Doc (en cours de création) : http://extaze.github.com/fly.js
Merci de m'avoir lu, de me poser toutes les questions, ou encore de me proposer certaines choses !