Avatar billede budda Nybegynder
23. juni 2006 - 20:09 Der er 1 kommentar og
1 løsning

Opfølger på "Anden farve ved mouse over" (olebole)

Jeg har siddet og kigget på funktionen der blev lavet af olebole i dette spørgsmål: http://www.eksperten.dk/spm/305393
Den virker fint med firkanter men når det kommer til free shape eller polygoner så virker det ikke, nogen der har en ide til at fixe "buggen"?
Avatar billede mclemens Nybegynder
24. juni 2006 - 10:31 #1
Løsningen i den nævnte tråd laves ved at tage et element (en div i dette tilfælde) og sætte størrelsen og placeringen udfra area'ets coords - Problemet er så m.h.t. free shapes og polygoner: En div er firkantet for at lave det rundt, polygonalt eller frit formet skal der "mange" div's oven i hinanden til og en del kryds beregning - det kan sikkert laves med noget gennemløb at flere div's der tilføjes på kryds og tværs med beregning af placeringer og størrelser ...

- Men, jeg er ikke helt så skrap til gennemløbning af element appendings og beregning af width og height dimensioner og placeringer så jeg kan ikke lige løse problemstillingen...

- Og m.h.t. at løse den tror jeg den bliver virkelig tung da man hurtigt kan komme op på et par 100 eller flere (måske et par tusinde) dynamisk tilføjede div's for at imitere en skæv div (jo flere div's jo mere præcis)... tror løsningen bliver "krævende" af browseren...

Men er da lige med på en lytter i tråden ... man kan jo kun blive
klogere, hvis der er en nemmere måde at lave at virke på... :/
Avatar billede budda Nybegynder
24. juni 2006 - 14:23 #2
Jeg har fundet en løsning:
http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm

Det denne funktion gør er at tegne en masse layers i mange forskellige former.

Jeg har dernæst lavet en lille funktion selv:
function thingy(elementee){
  ths = elementee.coords.split(",");
  jg.setColor("#ff0000"); // red
  jg.fillPolygon(new Array(parseInt(ths[0]),parseInt(ths[2]),parseInt(ths[4]),parseInt(ths[6])), new Array(parseInt(ths[1]),parseInt(ths[3]),parseInt(ths[5]),parseInt(ths[7])));
  jg.paint();
}

Denne funktion virker KUN til polygoner som er firkanter.
Derefter tilføjede jeg funktionen til mappet
<area href="#" shape="polygon" coords="316, 82, 377, 187, 455, 157, 368, 58" onclick="thingy(this);">
Således.

Det er løsningen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester