18. maj 2003 - 19:48Der er
26 kommentarer og 2 løsninger
Hjælp til div span
Jeg har tidligere idag fået glimrende hjælp herfra, men er løbet ind i endnu flere problemer.
Jeg har tre forskellige felter, to dropdown boxe og et tekstfelt. Disse ter sig ganske rigtig, men de to nederste ligger i div layers, og disse flytter sig ukontrolleret rundt, idet de er sat til absolute position i forhold til top og left.
Kan man enten lave dette om, så de to felter er "almindelige" felter (men stadig fungerer efter hensigten), eller tilføje noget kode der gør, at det lægger sig i forhold til hjørnet af den celle det bliver hentet ind i, istedet for hjørnet af skærmbilledet?
Eller kan man placere det i en egne tabel på den side der bliver hentet ind, sådan at det relaterer til hjørnet af denne celle?
Skær venligst jeres svar ud i pap - jeg har søgt en del på Eksperten i de sidste timer, og skal ikke kunne afvise at der allerede er svaret på det en gang. Men jeg kan ikke få det passet ind i koden.
Selve den del du er inde på, er den eneste del der ligger fast. Det er de to andre felter der flytter sig.
Du har sikkert ret i det med koden. Det ydre (dvs. menu/top/bund osv) ligger i en default, hvor resten ligger på den seperate side jeg også linker til i spørgsmålet. Der er sikkert tags på det hele :oS
Men altså - problemet går på de 34 submenuer og tekstfeltet (idet de ligger i div layers), og ikke på det første felt.
grunken> Bare tag dig tid. Jeg har brugt hele dagen på det her skidt, og må sande at skomageren bør blive ved sin læst, eller hvad det nu så smukt hedder.
Men man skal jo starte et sted, og jeg vil meget gerne lære det. Og jeg lærer da nyt hver dag :o))
Jeg er sikker på at der er en langt smartere metode til det - jeg har bare ikke kunnet finde et gratis script, hvilket vel er den eneste mulighed man har, når ikke man kan kode selv.
Du skal kigge på offsetParent.offsetLeft/Top -- prøv at kigge på koden i svaret på dette spørgsmål -- der er problemet løst ved at tage afsæt i det element, som der tages afsæt i: http://www.eksperten.dk/spm/351992
function positionSpans(){ offsDiv=document.getElementById("categoriaDiv"); var sps=document.getElementsByTagName("SPAN"); for (i=0;i<sps.length;i++){ if (sps[i].id.indexOf("sub")==0){ sps[i].style.left=""+(parseInt(offsDiv.offsetLeft)+parseInt(offsDiv.offsetParent.offsetLeft)+parseInt(offsDiv.offsetParent.offsetParent.offsetLeft))+"px"; sps[i].style.top="275px"; } } }
Hvis du bruger den kode du har, fjerner top og left fra stylen, vil denne kode flytte dine spans på plads ...
Selvfølgelig skal der en id på den div, som indeholder alle kategorierne (id="categoriaDiv") -- og der skal sættes det tilsvarende på prisfeltet -- men så kører det også !-)
function positionSpans(){ offsDiv=document.getElementById("categoriaDiv"); spLeft=""+(parseInt(offsDiv.offsetLeft)+parseInt(offsDiv.offsetParent.offsetLeft)+parseInt(offsDiv.offsetParent.offsetParent.offsetLeft))+"px"; var sps=document.getElementsByTagName("SPAN"); for (i=0;i<sps.length;i++){ if (sps[i].id.indexOf("sub")==0){ sps[i].style.left=spLeft; sps[i].style.top="275px"; } } document.getElementById("prisDiv").style.left=spLeft; }
Jeg er sikker på det er mig der er en klaphat til at fatte hvor den kode skal pastes ind roenving, for jeg kan simpelthen ikke få det til at virke :o/
grunkens virker derimod helt fint - selv for en kodespade som mig :o)
Ang. point, så har jeg jo haft mine til at ligge og samle støv længe nok, så der bliver lige lidt fordeling her for indsats til den ene, og brugbar løsning til den anden. Så hvis roenving også vil lægge et svar, så kan vi få lukket og slukket her.
Og hvad de svære spørgsmål er værd? Det de er værd for den der spørger. Og jeg er lykkelig for mit problem er løst :o))
-- men det ser lidt ud som vi snakker en professionel hjemmeside, som *bare* skal sidde ordentligt -- og med denne måde at gøre det på (som jo også udspringer af den løsning soelver selv fandt) er du sikker på, at du får tingene på plads.
-- det ser voldsomt ud med to gange offsetParent osv., men når elementerne er nestet som de er, må man jo gøre hvad der skal til ...
-- forøvrigt har jeg jo lidt ære at forfølge -- jeg _har_ jo fået 150 points tidligere idag fra soelver -- det skal hun da have valuta for -- og resultatet skulle gerne være sådan, at hun kan sælge sit produkt ...
roenving, du hjalp mig præcist med det jeg bad om tidligere på dagen. Havde bare ikke lige gennemtænkt det med de layers, for det har jeg store problemer med på min egen side. Tænk at falde i samme grøft to gange ;)
Se bare (himmelvendte øjne)- har ikke engang orket at kigge på det i lang tid. Spurgte i øst og vest efter en hurtig lappeløsning, men fandt aldrig nogen. Dette er kombinationen af hvad photoshop og min manglende kodeevne kan frembringe :o))
Forresten, kan man kaste en tredie dropdown ind i dette? Der er to forskellige typer behandling, og hvis jeg nu kunne samle dem under en side, ville det jo være nemt, fremfor at lave en side mere, med de andre priser på.
Altså, samme biler og varianter, bare to forskellige priser, alt efter hvad de vælger af behandling..
Ikke noget du skal svare på, kun hvis du har lyst/tid.
Sidder lige og overvejer om man kan lave det med en checkbox. Sådan to valgmuligheder, og kun den ene der kan vinges af.. hmmm..
Sjovt som mine idéer først kommer når jeg har fået lavet noget brugbart ;) Evigt sjovt at lave 34 undermenuer flere gange. *lol*
som ser ud til at den er lavet til 1024*768 (et gæt -- kører selv med 1152*864)
-- jeg er helt sikker på, at den teknik, som jeg bruger til relokering kan få tingene på plads ...
Ang. dit spm. om en valgmulighed mere, så er den dog simplere ...
Hvis du sætter en radio eller en dropdown mere, kan du (ja, i alle 34 undermenuer OG i alle valgmuligheder) sætte begge værdier ind adskilt af et tegn -- vi kunne jo bruge @ '-)
Lave en funktion, som henter den forreste _eller_ bageste del ud og præsenterer den i pris-feltet:
var valgtIRadio=0;
function vaelgPris(selVal){ if (valgtIRadio==1){ return selVal.substring(selVal.indexOf("@")+1); }else{ return selVal.substring(0,selVal.indexOf("@")); }
Prøv at springe behandlingsform over, for at vælge bilens variant først. Det giver et sjovt resultat :o/
Det er ellers meget velfungerende, når blot man tager det i den rigtige rækkefølge. Kan man på en eller anden måde disable nr.3, til 1 og 2 er valgt, - så skulle der ikke være anledning til problemer, selv for brugere der ikke er vant til at begå sig på nettet (hvilket jeg kan forvente vil være tilfældet for nogle af disse brugere. Især hvis jeg kigger på hvordan andre pava sites ser ud.
Dine point var da vist i underkanten efterhånden, med al den hjælp jeg har fået. Yders nem kode at gå til forresten :o)
Ikke at det er noget større problem, for når man går op og vælger behandlings typen, kommer automatisk de rigtige varianter forneden. Så det giver jo helt sig selv. Men det giver et lidt rodet indtryk, når man gør tingene omvendt. Som min mand fx. ville gøre det :o))
Jo. Kigger lige på det når jeg kommer hjem igen. Når ikke jeg fumler med kode/grafik/blyant, beskæftiger jeg mig med en ret dødelig ting som rengøring. Og jeg skulle være mødt for 7 minutter siden..
Nå, tilbage på min pind for en kort stund. Det virkede perfekt. Sikke du kan ;)
Nu skal jeg lade dig få fred. Tusind tak for hjælp og tålmodighed. Fantastisk at nogle mennesker bare kan det kodesjov, når jeg kan stirre på det i timer, uden at finde ud af hvad jeg skal gøre ved det. Jeg imponeres hver gang :o)
Synes godt om
Ny brugerNybegynder
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.