Avatar billede soelver Nybegynder
18. maj 2003 - 19:48 Der 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.

Koden kan ses i sammenhæng her:
http://tegnebordet.dk/pava/default.asp?vis=priser

Siden det bliver hentet ind i kan ses her:
http://tegnebordet.dk/pava/pages/priser.asp

Hvis man kigger på begge sider, kan man vist tydeligt få et overblik over problemet.

Håber på endnu engang at få velkvalificerede svar.
Avatar billede soelver Nybegynder
18. maj 2003 - 19:54 #1
Ved forresten ikke rigtig om jeg er i den rigtige kategori, men eftersom det hovedsaglig er i javascript, håber jeg så på at det ikke er helt galt.
Avatar billede -master-d- Nybegynder
18. maj 2003 - 19:58 #2
Først og fremmest er der noget helt galt i din kodning. Det er ikke normalt at man indsætter flere <html></html><head></head></body><body> tags.

Men prøv at sætte dette ind istedet.

<div align="left" style="position:absolute; left:115px; top:325px">
    <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)">
      <option selected value="">-- Vælg bilmærke --
      <option value="alfa">Alfa Romeo
      <option value="audi">Audi
      <option value="bmw">BMW
      <option value="chevrolet">Chevrolet
      <option value="chrysler">Chrysler
      <option value="citroen">Citroen
      <option value="daewoo">Daewoo
      <option value="daihatsu">Daihatsu
      <option value="fiat">Fiat
      <option value="ford">Ford
      <option value="honda">Honda
      <option value="hyundai">Hyundai
      <option value="jaguar">Jaguar
      <option value="kia">Kia
      <option value="lada">Lada
      <option value="lancia">Lancia
      <option value="landrover">Land-Rover
      <option value="mazda">Mazda
      <option value="mercedes">Mercedes-Benz
      <option value="mitsubishi">Mitsubishi
      <option value="nissan">Nissan
      <option value="opel">Opel
      <option value="peugeot">Peugeot
      <option value="porsche">Porsche
      <option value="renault">Renault
      <option value="rover">Rover
      <option value="saab">Saab
      <option value="seat">Seat
      <option value="skoda">Skoda
      <option value="subaru">Subaru
      <option value="Suzuki">Suzuki
      <option value="toyota">Toyota
      <option value="volvo">Volvo
      <option value="volkswagen">Volkswagen
    </select>
Avatar billede grunken Nybegynder
18. maj 2003 - 20:02 #3
Det ligner da osse en TOTALT fjollet måde at lave det på

giv mig lige 10 min.
Avatar billede soelver Nybegynder
18. maj 2003 - 20:06 #4
-master-d- >

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.
Avatar billede roenving Novice
18. maj 2003 - 22:14 #5
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

hth
jes
Avatar billede grunken Nybegynder
18. maj 2003 - 22:15 #6
Nå der kom lige noget andet i vejen ;D

Her er min version så...: http://www.grunken.dk/exp/354144.html

jeg syns at den du har fået bakset sammen er totalt IKKE brugervenlig

ganske irretrende at man ikke kan ændre sit valg, den her fungerer så uden alle de irreterende layers!

-grunken
Avatar billede soelver Nybegynder
18. maj 2003 - 22:32 #7
Absolutely beautiful :o))
Lægger du et svar grunken?
Avatar billede roenving Novice
18. maj 2003 - 22:58 #8
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";
    }
  }
}
Avatar billede roenving Novice
18. maj 2003 - 23:01 #9
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å !-)
Avatar billede roenving Novice
18. maj 2003 - 23:07 #10
De steder, der skal rettes:

    #sub1, #sub2, #sub3, #sub4, #sub5, #sub6, #sub7, #sub8, #sub9, #sub10, #sub11, #sub12, #sub13, #sub14, #sub15, #sub16, #sub17, #sub18, #sub19, #sub20, #sub21, #sub22, #sub23, #sub24, #sub25, #sub26, #sub27, #sub28, #sub29, #sub30, #sub31, #sub32, #sub33, #sub34
    { position: absolute;
      visibility: hidden;
      z-index: 3
    }
</style>

<SCRIPT LANGUAGE="JavaScript">

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;
}


<body onload="positionSpans();">


  <div id="categoriaDiv" align="left">
    <select name="categoria" onmouseover="unlock()" onchange="selectSub(this)">
      <option selected value="">-- Vælg bilmærke --
      <option value="alfa">Alfa Romeo
      <option value="audi">Audi
      <option value="bmw">BMW
.
.
.

  <div id="prisDiv" style="position:absolute; left:115px; top:325px">
<input type="text" name="subcategory" readonly="readonly" value="- subcategory -">
</div></div>

-- så vil det køre perfekt -- jeg tror faktisk det bliver svært at finde andet end dybt forældede browsere, som vil gå helt galt !-)

hth
jes
Avatar billede grunken Nybegynder
18. maj 2003 - 23:09 #11
>roenving

jeg syns at du snakkede om overkill tidligere i dag *G*
Hvordan kategoriserer du den her sidste løsning ? *G*

mobbe mobbe ;p


>Soelver
Jeg skal altså ikke have 200 points for mit indlæg, på den måde ender eksperten jo i anarki, hvad er de svære spørgsmål så værd ?

lad os sige at jeg skal have ca. 60

btw fed hjemmeside du har dig ;)
Avatar billede soelver Nybegynder
18. maj 2003 - 23:18 #12
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))

Tak til jer begge for indsatsen.
Avatar billede roenving Novice
18. maj 2003 - 23:21 #13
>>grunken *g*

-- 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 ...

Forøvrigt skal vi også lige have en onrezize med:


<body onresize="positionSpans();" onload="positionSpans();">
Avatar billede soelver Nybegynder
18. maj 2003 - 23:34 #14
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 ;)

http://www.soelver.dk/eksperten.html

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))

Af skade bliver man klog men sjældent rig.

Roenving, vil du ikke have point?
Avatar billede roenving Novice
18. maj 2003 - 23:36 #15
>>soelver

Den kode jeg har skrevet har 3 dele (hmm 4) ...

Det første er oppe i starten, hvor der først er styles og så starter javascriptet, som du har fundet ...

Det jeg har pastet til og med den første funktion skal erstatte _indtil_ copyright-meddelelsen.

Inde midt i det hele er der et <body>-tag -- det skal erstattes af det jeg sidst har postet.

Nede i bunden skal der 'bare' sættes id på de divs, som rummer hhv. bil-mærke og pris ...

hth
jes
Avatar billede grunken Nybegynder
18. maj 2003 - 23:47 #16
Tak for points :)
Avatar billede soelver Nybegynder
18. maj 2003 - 23:51 #17
Så lidt.

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*
Avatar billede grunken Nybegynder
19. maj 2003 - 00:02 #18
kigger lige på det :=)

skal det fungere sådan:

-vælg bilmærke
-vælg behandlingstype
-vælg variant
-pris

eller hvad ?
Avatar billede soelver Nybegynder
19. maj 2003 - 00:07 #19
Jeps. Lige netop. Der vil så blive to prisvarianter, hvor der nu kun er en.
Avatar billede roenving Novice
19. maj 2003 - 00:07 #20
-- takker for points ;~}

Ang. 18/05-2003 23:34:59

Tænker du på en side som denne:
http://www.soelver.dk/eksperten/andersm.htm

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("@"));
}

Og så skal radio'en have en

onchange="valgtIRadio=this.selectedIndex;"


hth
jes
Avatar billede grunken Nybegynder
19. maj 2003 - 01:17 #21
Avatar billede soelver Nybegynder
19. maj 2003 - 02:19 #22
grunken > Et tillægsspørgsmål til det andet tillægsspørgsmål:

Jeg har brugt den nye kode her:

http://tegnebordet.dk/pava/pages/priser_3.asp

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)
Avatar billede soelver Nybegynder
19. maj 2003 - 02:25 #23
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))
Avatar billede soelver Nybegynder
19. maj 2003 - 02:55 #24
Avatar billede grunken Nybegynder
19. maj 2003 - 02:59 #25
godt personligt hader jeg disablefunktionen ;D, så den får du ikke endnu

men der er en funktion der hedder slet, prøv at skifte den ud med den her :)

function slet() {
  frm = document.forms[0]
  if (frm.s2.options[frm.s2.selectedIndex].value !=""){
      frm.s2.options[frm.s2.selectedIndex=0]
      frm.s3.length = 1;
      frm.s3.options[0].text = "-Vælg Variant-";
      frm.pris.value = '';}
}

Det problem som du beskrev ovenstående, kom det ikke kun når man skiftede bil efter at have valgt det hele en gang ?
Avatar billede soelver Nybegynder
19. maj 2003 - 03:08 #26
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..

Er der noget der hedder at kode over sig? :P
Avatar billede grunken Nybegynder
19. maj 2003 - 03:10 #27
god arbejdslyst så :)
Avatar billede soelver Nybegynder
19. maj 2003 - 08:08 #28
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)
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