Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste/tableau "web 2.0"

52 réponses
Avatar
Pierre Goiffon
[Publipostage sur f.c.i.w.auteurs et f.c.l.javascript, suivi sur
f.c.l.javascript - merci de corriger si inadapté]

Bonjour,

J'ai déjà vu dans plusieurs applications en ligne des choses épatantes
:) Je cherche en particulier en ce moment à reproduire un comportement
particulier : soit une liste d'items avec plusieurs éléments associés.
Par exemple, dans un webmail, la liste des messages contenus dans le
dossier courant. Pour chaque item, plusieurs éléments : expéditeur,
titre, date, taile, ... La "vieille méthode" est de mettre une checkbox
devant chaque éléments, et les actions (supprimer, déplacer, ...) en
haut/bas de page.

J'ai vu plusieurs fois des choses épatantes et qui fonctionnaient tant
sur IE 6 que Firefox, qui rapprochaient l'ergonomie à ce que l'on trouve
sur une application classique. Bref : plus de checkbox, une sélection
naturelle en cliquant sur les items, possible au clavier, éventuellement
multiple (Ctrl et Maj), un clic droit qui ouvre un menu contextuel, des
rollovers, ...

Il y a déjà des choses que l'on peut faire avec CSS (changement de
couleur au survol), mais pour le reste je n'ai jamais bien creusé car il
s'agissait à chaque fois de choses assez compliquées à comprendre (bcp
de choses pour isoler ce qui m'intéresse)...

Est-ce que quelqu'un aurait des exemples simples (peut être lié à des
bibliothèques Google ou Yahoo ou ... ?), qui me permettrait d'obtenir
une telle interface au sein de mes applications Web ?

10 réponses

2 3 4 5 6
Avatar
Laurent Vilday
http://mokhet.com/tests/hover_behavior.php
http://mokhet.com/tests/hover_js.php


Suis-je autorisé à les mettre dans mon dossier de démos /truc/ ?


Lol Stéphane. Evidemment oui :D

--
laurent


Avatar
Jahjah92
Salut ,
Essayes la librairie javascript "Prototype" et son extension de l'objet
Event
A+
Avatar
Laurent Vilday
Salut ,
Essayes la librairie javascript "Prototype" et son extension de l'objet
Event


Non, non et non !

petit cut/paste depuis prototype.js

_observeAndCache: function(element, name, observer, useCapture) {
if (!this.observers) this.observers = [];
if (element.addEventListener) {
this.observers.push([element, name, observer, useCapture]);
element.addEventListener(name, observer, useCapture);
} else if (element.attachEvent) {
this.observers.push([element, name, observer, useCapture]);
element.attachEvent('on' + name, observer);
}
},

1) useCapture ?!?!
IE6 ne permet pas de passer en mode capture des events, donc inutile
ici. Et a priori IE7 non plus, donc inutile avant des années :(

2) tester à chaque assignation d'un event si on doit faire attachEvent
ou addEventListener, c'est pas terrible. Ferait mieux de définir des
fonctions différentes suivant l'existence de telle ou telle autre fonction

3) pas de gestion du contexte d'execution (this est inutilisable dans
les différents observers car différents selon les navigateurs)

4) pas de synchronisation de l'event manipulé (window.event pour IE,
event en paramètre de l'observer pour les autres) - Une librairie se
targant de gérer les events pourrai au moins faire l'effort de fournir
un objet event commun à tous les navigateurs

5) pas de gestion possible des events en modèle DOM0

prototype.js, c'est la pire librairie js de l'univers connu. Bien
qu'elle soit très populaire il ne faut absolument pas s'en servir, c'est
la plus mauvaise idée du jour.

Comme ça, sans ordre particulier :

- peu de feature detection. prototype.js considère qu'il est inutile de
vérifier l'existence des méthodes qu'il utilise. mauvais point pour une
librairie. D'autant plus qu'une fois que c'est cassé parce que le UA
disait oui alors qu'on a pas les functions nécessaire, c'est fini, on
peut plus rien faire du tout. Ceci dit, il semblerait que Sam Stephenson
soit en train d'améliorer cet aspect.

- pas d'optimisation des fonctions (la librairie se retrouve à faire des
milliards de fois les mêmes tests)

- pas de documentation

- pas de tests de démonstration

- aucun support technique. Obligé de passer par l'ouverture de tickets
sur Ruby On Rails si on veut vraiment avoir une chance d'avoir un
support. pfff

- touche au prototype de l'objet Object ce qui fait qu'on ne peut plus
entre autre utiliser de hash et faire / for ( var .. in .. ) / ou alors
il faut compliquer le code pour réussir à devenir compatible avec
prototype.js - Dit comme ça ça semble anodin, alors qu'en fait ça force
les utilisateurs de prototype.js à n'utiliser que cette librairie et
rien d'autre (hormis les librairies nécessitant prototype.js évidemment)
puisque tout le reste se trouve cassé et inutilisable en présence de
prototype.js. Il en résulte un code produit avec des comportements
innatendus qui changent d'une version à l'autre. innaceptable pour une
librairie !

- obfuscation intensive du code, empêchant une compréhension immédiate
par la simple lecture

- dépendance de sa syntaxe (philosophie venant d'un autre langage) et
fini par vous obliger à réapprendre le VRAI javascript au bout d'un moment.

- prototype.js encourage les mauvaises habitudes de codage avec des
fonctions comme :

Try.these( func01(...), func02(...), func03(...) );

comme un raccourci pour de multiple blocks try..catch

etc.

Donc non à prototype.js, suffit de lire le code pour s'en convaincre.

Si c'est pour une gestion des events, prototype.js est bien trop gros
pour ça, le mieux imo c'est dans l'ordre :

1) créer sa propre librairie - jamais mieux servi que par soi même
2) s'en tenir au modèle DOM0 (elt.onclick) si les modèles IE et DOM
semblent trop compliqués
3) rechercher une librairie dédiée exclusivement aux events
( google > addEvent )
3bis) ou utiliser la librairie Y!Events qui possède presque tout ce
qu'on peu demander à une gestion des events (garbage collector fixé,
attribution du scope d'exécution, fixe de l'event fourni au handler,
possibilité de transmettre un objet arbitraire au handler, fallback au
modèle DOM0 quand nécessaire - on pourrait lui reprocher de ne pas
permettre de /forcer/ le modèle DOM0 mais bon ... )
http://developer.yahoo.com/yui/event/

--
laurent

Avatar
ASM
Salut ,
Essayes la librairie javascript "Prototype" et son extension de
l'objet Event


Non, non et non !


d'accord, ok, les biblis lourdes et génériques c'est pas idéal
(à mon avis)

Alors après avoir archivé le coup de la molette,
j'ai joué un peu avec et m'en suis servi pour le zoom d'image
http://stephane.moriaux.perso.orange.fr/truc/image_zoom_molette.htm

Ne reste plus qu'à trouver comment adapter ton procédé particulier à
n'importe quel(s) élément(s) (images dans mon cas) de la page.

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
ASM
(un lien vers une demo de fonction molette-event)

Ne reste plus qu'à trouver comment adapter ton procédé particulier à
n'importe quel(s) élément(s) (images dans mon cas) de la page.


Je ne sais si c'est très élégant ?
http://stephane.moriaux.perso.orange.fr/truc/images_zoom_molette.htm

chez moi :
FF = OK
Opera 9 = OK
Safari = iCab = rien, pas de message ABANDON mais style et title oui
IE = ABANDON

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Jean-Marc Molina
Pierre Goiffon wrote:
Aussi, je préfère avoir un table HTML "nu" et n'avoir qu'à
ajouter un .js et un appel à une fonction pour transformer ce tableau
standard. Je continue mes essais en tout cas (encore qq heures...), on
verra bien.


Bonne méthode car il est important de bien séparer la présentation de la
logique. Certains frameworks reposent même sur l'utilisation de documents de
description des interfaces (XML) et les composants sont liés de manière
automatique (grâce à leurs identifiants) à des méthodes de classes
(prototypage en JS).

Avatar
Pierre Goiffon
Jean-Marc Molina wrote:
Certains frameworks reposent même sur l'utilisation de documents de
description des interfaces (XML) et les composants sont liés de manière
automatique (grâce à leurs identifiants) à des méthodes de classes
(prototypage en JS).


Est-ce que vous auriez des exemples que je pourrai étudier ? Merci !

Avatar
Christophe, elitemediacompany.com
Est-ce que quelqu'un aurait des exemples simples (peut être lié à des
bibliothèques Google ou Yahoo ou ... ?), qui me permettrait d'obtenir une
telle interface au sein de mes applications Web ?


Je ne suis pas sur de répondre a tes interrogations, étant moi meme en
"auto-formation" sur ces nouvelles techniques web, mais peut etre que tu
trouveras ton bohneur ou un point de départ avec ces liens :

http://www.backbase.com (Je trouve celà fabuleux, mais c'est quand meme
super lourd...)

http://www.double-six.org/lconfort/home.nsf/0/D969BFEDFEC3CA85C12570A300561860

http://dojotoolkit.org/ ( Un framwork Ajax qui me semble interressant, mais
malheureusement, peu documenté, le projet me semble trop récent encore)

Christophe

Avatar
Pierre Goiffon
Christophe, elitemediacompany.com wrote:
Je ne suis pas sur de répondre a tes interrogations, étant moi meme en
"auto-formation" sur ces nouvelles techniques web, mais peut etre que tu
trouveras ton bohneur ou un point de départ avec ces liens :

http://www.backbase.com (Je trouve celà fabuleux, mais c'est quand meme
super lourd...)

http://www.double-six.org/lconfort/home.nsf/0/D969BFEDFEC3CA85C12570A300561860

http://dojotoolkit.org/ ( Un framwork Ajax qui me semble interressant,
mais malheureusement, peu documenté, le projet me semble trop récent
encore)


Merci bcp de ces liens ! Backbase ne me convient pas vraiment, et Dojo
avait déjà été évoqué dans le fil. Par contre plusieurs liens sur la
2eme page sont très intéressants !

Merci encore

Avatar
Pierre Goiffon
Pierre Goiffon wrote:
J'ai vu plusieurs fois des choses épatantes et qui fonctionnaient tant
sur IE 6 que Firefox, qui rapprochaient l'ergonomie à ce que l'on trouve
sur une application classique. Bref : plus de checkbox, une sélection
naturelle en cliquant sur les items, possible au clavier, éventuellement
multiple (Ctrl et Maj), un clic droit qui ouvre un menu contextuel, des
rollovers, ...


Grace à tous les éléments donnés ici, et après quelques recherches sur
Google je suis arrivé à cette petite maquette :
http://pgoiffon.free.fr/_temp/datagrid_20060623.html

Merci encore à tous !
Heureux de m'être lancé là-dedans, j'ai appris beaucoup de choses, et je
suis impatient d'exploiter cette maquette !

2 3 4 5 6