Beiträge von synaptic

    also mir ist es auch schon oft passiert, dass ich mir zeit nehme (mitunter 30 minuten und mehr) und dass dann auf meine lösung keine reaktion mehr kommt und dann sehe ich dass es ein crossposting ist/war.
    faktisch hab ich dann echt kaum noch lust mich mit dem problem anderer zu beschäftigen, denn in den 30 minuten und mehr kann ich meine tier versorgt haben oder essen kochen oder selber was programmieren.

    insofern finde ich, dass ein benutzr schon auf sein posting in anderen foren hinweisen sollte, das gehört ja wohl zum anständigen verhalten untereinander.

    ich lege viel wert darauf, dass die user eigeninitiative zeigen und was lernen dabei.
    das hier is ein gutes beispiel, wie es laufen soll: https://www.forum-hilfe.de/threads/55407-…en-%28Usemap%29

    darwinger hat interesse und eigeninitiative gezeigt. es geht ja hier nicht darum einfach code vorkauen zu wollen, sonst wäre das hier codesamariter.de und nicht forum-hilfe.de

    na du wirst doch noch zwei divs hinbekommen und da die codes reinkopieren...
    das is keine leistung und wir liefern hier hilfe zur selbsthilfe

    wenn du es gepackt hast den bookmark reinzukopieren, kriegste das auch mit nem div hin

    den div gibste noch nen style-attribut und schreibst da hinein "float:left;" und "width:200px;"

    spontan würd ich beide buttons in separate devs packen und die divs positionieren, du kannst aber auch nur ein div für twitter nehmen und den iframe entsprechend stylen.

    variante a) ist sinnvoller, weil du so den social bookmarks nen rahmen bietest, wo se drin sind und sich "entfalten" können

    ach vergiss es..^^ ich weiß wo mein fehler liegt :D
    konnte ja hier im büro grad nich testen.
    also testen kann ich noch immer nicht...
    aber probier mal das hier

    der fehler kam auf weil die forschleife jedes einzelne zeichen genommen hat und so bekommste bei nem komma des NaN.
    jap der geistige horizont eines entwicklers ist immer nur der abstand von seiner brille bis zum brett vorm kopf..^^

    bei deiner fehlermeldung scheinst du zu viele punkte zu haben für ein rechteck...

    generell:
    wenn etwas NaN wird...
    also des heisst Not A Number und der fehler tritt meistens auf, wenn man etwas was nicht automatisch zu ner zahl gemacht werden kann in eine berechnung wirft.
    du könntest mal das hier:

    HTML
    areaCoords[j]=Math.round(coords[j]*um);


    zu dem hier machen

    HTML
    areaCoords[j]=Math.round(parseInt(coords[j])*um);

    aber da wären wir wieder beim thema ganzen code mit allem pipapo bereitstellen zum richtigen debugging :P

    und bei deinem shape-problem wird das wohl auch keine abhilfe schaffen.. du hast schlichtweg zu viele koordinaten in deinem einen objekt

    naja zum richtigen debuggen ist es immer hilfreich alles zu haben, weil man so eventuelle wechselwirkungen sehen kann.
    und nein, der code alleine ist dabei nicht ausreichend ;)
    und mir scheint du hast da jetzt die coords händisch in dein script kopiert.. JA!!! das is unfug :)
    ok es funktioniert, aber toll isses nicht, wenn du jetzt einen fehler im algorithmus hast, musst du für jede area den code ändern :)
    entweder du baust ne funktion und übergibst die coords oder ggf auch das area-element oder aber du probierst mal das hier...

    und ich vermute dass es noch nicht ganz klappt, weil die koordinaten ja durch einen top- und einen left-wert gebildet werden, relativ zum bild.
    also reicht die normale bildbreite nicht aus, um damit beide koordinatenpunkte zu berechnen. du musst rausfinden welcher wert der koordinate top ist und welcher left und den entsprechend durch die höhen- bzw. durch die breiten-verhältnisse modifizieren.

    und wenn ich mit dieser annahme recht habe :mrgreen: musst du jetzt bei deinem Code ALLES wieder verändern, für jede area einzeln

    du liegst falsch :D da is nix zweidimensional - bzw muss nix zweidimensional sein
    du hast ein array mit den areatags drin (das is des aus meinem script-teil)
    das gehste durch, liest die coords aus, manipulierst se und stopfst se manipuliert wieder rein.
    alles in einem eindimensionalen array.
    du kannst das auch so machen dass du eine schleife durchläufst und in der schleife ne funktion aufrufst, die selber auch nur eine schleife hat.

    wo du aufpassen musst, ist eine verschachtelte schleife, weil du ja in der äußeren über die areas iterierst und in der inneren die coords ausliest und verwurstest (das wäre der part, den man prima in eine funktion auslagern kann).

    da helfen aber zählvariablen i und j :mrgreen:

    mach mal nen string draus..

    Code
    document.getElementById('l1a').coords = koord[0] +', '+ koord[1] +', '+ koord[2] +', '+ koord[3];


    und vergiss nicht, du manipulierst da grad nur die area l1a
    es is echt am einfachsten wenn du mit document.getElementByTagName('area') die elemente als array holst, das durchläufst und darin die operationen machst.


    nen absoluter pfad ist immer mit domain und ordnern vorneweg
    also http://bla.de/meinOrdner/meinUnterOrdner/bild.jpg

    lad dein bild für die map mal hoch, damit ich sehe, wie es da aussieht.

    und doch doch das is schon die info mit der auflösung die ich meine, aber es geht am ende des tages um den viewport und nicht um die bildschirmauflösung, aber damit kann ich ja dann auch leben und weiß was los is ;)

    gib mir mal n bissi zeit bis heut abend und lad mal die datei wo hoch, ich schaus mir dann heute abend oder am wochenende mal genauer an :)

    edit: ich seh grad du hast das script im head..
    mein script müsste natürlich unter die map platziert werden, weil ja sonst die html-elemente noch nicht vorhanden sind, auf die du zugreifst.

    wenn du die scripte im head haben willst, müsstest du die in ein window.onload() stopfen :)

    poste mal deinen kompletten code der seite..

    erklärung des fragments:
    coords ist das von mir definierte leere array die funktion "push" fügt elemente hinzu, die man als parameter übergibt.
    der übergebene parameter ist ein javascript-objektliteral (quasi ein einfaches objekt)
    dieses objekt hat drei eigenschaften
    area_index (das ist die zahl der position)
    area_href (der link vom area-tag)
    coords (die gesammelten koordinaten des aktuellen area-tags)

    der hook ist die map als einsprungpunkt, wenn du deiner map die richtige ID gibst (und hier nochmal: ID != NAME), wird die von dem document.getElementById() gefunden und dann kann ich die innenliegenden area-elemente finden und auslesen.
    das geht über das getElementsByTagName. das ding liefert mir also nen array der html-elemente, was ich in der schleife durchlaufen kann.
    ebenfalls in der schleife erzeuge ich objekte, in denen ich zum einen die information über die coords speichere und zum anderen infos, mit denen man auf die objekte selber wieder zugreifen kann :)

    ganz einfach ;)

    hast du der map die id="netz" gegeben?
    und woher nimmst du den wert hier: 3633 ??
    deine formel dürfte nur variablen haben :)

    und wie gehabt, ich würde den normalzustand nehmen, die coords von einer area auf nen papier schreiben, dann das ganze für ne größere und für ne kleinere auflösung und auch da die coords notieren.

    aus den werten musste dann ne formel generieren und die als javascript umsetzen :)

    schon schade mit den ganzen crosspostings, ich glaub da lohnt es sich einfach nicht mehr überhaupt noch irgendwo zu antworten, bei locker 7 von 10 threads gibts doch crosspostings :(
    wie soll man da die 3 rausfinden? oder muss ich jetzt wirklich jedes verkackte mal zeit investieren, um zu prüfen, ob sich das investieren weiterer zeit lohnt? sowas is soooo kacke!

    gib deiner map mal zusätzlich zum name noch ne id="netz". und dann probier das hier mal aus:

    mach den firefox auf und schau mal in den firebug. genauer in die konsole vom firebug.
    darin haste dann objekte mit index, link und coords.

    also.. wenns klappt, der code is ungetestet ;)