d'accord merci pour les clarifications.
je vais essayer modifier la structure :)
je vous tiens au courant :)
Version imprimable
d'accord merci pour les clarifications.
je vais essayer modifier la structure :)
je vous tiens au courant :)
bonjour,
alors j'ai montr� le r�sultat � mon tuteur et d'abord il �tait plut�t d��u mais apr�s avoir agrandi le graph pour qu'il passe sur au moins 2-3 �crans il est plut�t satisfait.
il m'a demand� de faire plusieurs am�liorations et plein d'ajouts tr�s long et compliqu�.
le plus simple de ce qu'il a demand� est de griser les t�ches en gris quand on survole une t�che : c�d toutes les t�ches qui ne sont pas des enfants de cette t�che doivent �tre en gris (donc toutes les t�ches sauf elle-m�me et ses enfants)
donc j'ai fais ceci :
Code:
1
2
3
4
5
6
7
8
9
10
11 var task = d3.select(this).data()[0].task; var color = d3.select(this).data()[0].color; var oNext; if(d3.select(this).data()[0].successor.length > 0) { oNext = d3.select(this).data()[0].successor.split(", "); oNext.forEach(function(next_id) { $('rect[id!="'+next_id.trim()+'"]').attr("fill", "#BFBFBF"); $('rect[id="'+task+'"]').attr("fill", color); }); }
�a marche pour certains mais pour d'autres �a ne marche pas, pour certains les enfants sont gris� :(
l'inverse marche, c�d mettre uniquement les successeurs en gris fonctionne. alors pourquoi est-ce que ce que je veux ne marche pas ? :koi:
le retour dans la couleur initial c'est bon
vous pouvez m'aider svp :help:
bon j'ai d� faire comme �a et �a marche:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var task = d3.select(this).data()[0].task; var color = d3.select(this).data()[0].color; var oNext; if(d3.select(this).data()[0].successor.length > 0) { oNext = d3.select(this).data()[0].successor.split(", "); oNext.forEach(function(next_id) { $('rect').attr("fill", "#BFBFBF"); $('rect[id="'+task+'"]').attr("fill", color); taskArray.forEach(function(el) { if(el.task == next_id.trim()) { $('rect[id~="'+el.task+'"]').css("fill", el.color); } }); }); }
du coup dans la fonction onmouseout je dois faire :
Code:
1
2
3
4
5 taskArray.forEach(function(el) { $('rect[id="'+el.task+'"]').css("fill", ""); $('rect[id="'+el.task+'"]').attr("fill", el.color); });
y a moyen de faire mieux ou pas ?
je pense qu'en passant pas des classes et en g�rant cela via le CSS cela serait plus efficace et plus facilement maintenable.Citation:
... y a moyen de faire mieux ou pas ?
Et si maintenant ils veulent que les traits soient opaque ?
Nota: cela va de soit que la structure du SVG doit �tre rigoureuse !
Cette question aurait quand m�me m�rit� une nouvelle discussion car on commence a avoir du mal � s'y retrouver.
d'accord merci pour votre r�ponse :)