JeuWeb - Crée ton jeu par navigateur
Aspect graphique dynamique - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Aspect graphique dynamique (/showthread.php?tid=4811)

Pages : 1 2


Aspect graphique dynamique - Argorate - 10-05-2010

Bonjour,
voilà j'ai un petit soucis, j'aimerais avoir votre avis.

Je travail sur un site qui gére la gestion de fichier (GED) avec le chemin (arboressence) de la où se trouve l'utilisateur, comme ceci :
[Image: interface%20alfresco.jpg]
ici l'utilisateur est dans "home => documents => misc"

Sachant que je dispose d'une zone limité pour écrire le chemin pour des raisons de design. Le problème est donc de gérer si par exemple le chemin est trop long, par exemple "home => documents => misc => dossier avec un nom très long a la con => documents"

Et dans un tel cas, ce que j'ai fait pour l'instant c'est de tronqué le chemin en mettant trois petit point et juste le dernier dossier, comme ceci:
[Image: interface%20alfresco2.jpg]

Mon problème est que le client veux que se soit dynamique, dans le sens où (de base la fenêtre est très petite) et s'il l'agrandit il voudrais que ça remettre tout le chemin, et s'il l'a re-rétrécie que ça repasse en tronqué. Tout ça en JS, sans recharger la page.

Donc si vous avez une idée pour ce problème (je vois pas du tout comment faire ou même si c'est faisable), suis preneur. Merci.


RE: aspect graphique dynamique - Sephi-Chan - 10-05-2010

Attention aux pillage de ressources graphiques. :p

Pour ton problème, tu devrais regarder du côté de l'événement onresize.
Après, ça semble assez simple de changer le contenu à la volée, dans la balise qui contient le nom du répertoire (ou ...) s'il est trop petit, tu rajoutes un attribut title qui contient le nom complet.


<div title="Mon répertoire dont le nom fait 15 bornes">…</div>

Ta crainte, c'est que le nom complet de chaque répertoire rende ta barre d'adresse trop longue ?


Sephi-Chan


RE: aspect graphique dynamique - Argorate - 10-05-2010

Je connaissais pas cet évènement tien^^ jamais eut l'utilité jusque là.
C'est pas mal, je vais voir se que je peux en faire... Smile

Le truc c'est que si tu rentres dans 3 répertoire d'affilé ils peuvent avoir de petit nom et rentrer correctement, alors que si tu en prends trois autres, dès le deuxième ça peux ne plus marcher...

PS: pour le "pillage", j'ai fais la réflexion a mon boss, mais c'est se que le client veux. Remarque c'est justement pour des fan de mac, alors ça fait de la pub plus qu'autre chose Wink


RE: aspect graphique dynamique - Sephi-Chan - 10-05-2010

(10-05-2010, 12:35 PM)Argorate a écrit : Le truc c'est que si tu rentres dans 3 répertoire d'affilé ils peuvent avoir de petit nom et rentrer correctement, alors que si tu en prends trois autres dossiers où des le deuxième ça rentrera plus...

Ce n'est pas tant un problème : tu peux récupérer la taille de de l'élément conteneur (qui va s'étendre selon les répertoires de l'arborescence), et refaire des manipulation si elle excède une certaine valeur. Ce sera transparent pour l'utilisateur. Smile


(10-05-2010, 12:35 PM)Argorate a écrit : PS: pour le "pillage", j'ai fais la réflexion a mon bosse, mais c'est se que le client veux^^ (alors [/size]chut[size=x-small], il faut rien dire :p) Remarque c'est justement pour des fan de mac, alors ça fait de la pub plus qu'autre chose Wink

C'est vrai qu'Apple a besoin de publicité. Confusediffle:

Quant à ton patron… Soit il n'a aucune force de persuasion, soit aucune conscience professionnelle. Il fait le tapin quand les clients le souhaitent, aussi ? Plus sérieusement, faire de l'illégal en entreprise, que ce soit une demande du client ou non, c'est mal. Smile


Sephi-Chan


RE: aspect graphique dynamique - Argorate - 10-05-2010

Disons que jusqu'à présent les conteneurs n'avaient pas d'id, donc je vais changer ça effectivement ça sera plus simpleSmile

Sinon, on va pas partir sur un débat "bien/pas bien" sinon on a pas fini ^^

Merci


RE: Aspect graphique dynamique - Argorate - 20-05-2010

Re-bonjour,

c'est marrant je viens d'essayer de mettre en place ce dont on a parler, mais si je met un simple onresize="alert('test')", cela me fait des alert sous IE mais pas FF Sad

Ça me parait bizarre cette histoire...


RE: Aspect graphique dynamique - php_addict - 20-05-2010

(20-05-2010, 11:23 AM)Argorate a écrit : Ça me parait bizarre cette histoire...

il y a des topics sur la toile a ce sujet, je n'ai pas lu en detail mais voici l'url de recherche:

http://www.google.fr/#hl=fr&source=hp&q=onresize+firefox&aq=3&aqi=g6&aql=&oq=onresize&gs_rfai=&fp=d4c96ae450f5424a


RE: Aspect graphique dynamique - Sephi-Chan - 20-05-2010

Sinon, si tu utilises jQuery, il existe un plugin qui permet de gérer les événements (cross-browser) de redimensionnement, et pas uniquement sur l'objet window. jQuery resize event.

Sans librairie, il y a de fortes chances que tu fasses de la merde tant cette partie de Javascript diffère d'un browser à l'autre. Smile
Par exemple, IE et WebKit déclenchent l'event tout au long du redimensionnement, alors que Firefox ne le fait qu'à la fin.


Sephi-Chan


RE: Aspect graphique dynamique - Argorate - 20-05-2010

Sinon, j'ai un autre problème lié a la même appli:

j'ai besoin de recup la position d'un élément, cela marche sous FF et évidemment pas sous IE:

je fais simplement :
parseInt(document.getElementById('rech').offsetLeft)

Mais ça renvoit 0 sous IE, alors j'ai chercher un peut, certains sur le net proposaient des fonctions du type:
//donne la position de l'element
function getPosition(element)
{
var left = 0;
var top = 0;

/*On récupère l'élément*/
var e = document.getElementById(element);
/*Tant que l'on a un élément parent*/
while(e.offsetParent != undefined && e.offsetParent != null)
{
var_dump(e.offsetLeft);
//alert(e.offsetParent);
/*On ajoute la position de l'élément parent*/
left += e.offsetLeft + (e.clientLeft != null ? e.clientLeft : 0);
top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0);
e = e.offsetParent;
}
return new Array(left,top);
}
Mais ça ne fais pas mieux en mon cas.


S'il n'y a pas de solution, une alternative pourrait être : comment obtenir l'événement "div devient overflow" toujours en JS? Ca doit etre possible puisque le CSS nous permet de dire comment gérer la scroll en cas d'overflow... (cette solution me faciliterais plus la vie que la première mais bon, je suis preneur des deux solutions si elles existent.


RE: Aspect graphique dynamique - Sephi-Chan - 20-05-2010

Naturellement, la récupération des offsets n'est pas cross-browser. Heureusement, le monde est bien fait.

À moins que ton patron ne t'empêche aussi d'utiliser des librairies externes… Confusediffle:


Sephi-Chan