22. oktober 2000 - 11:26Der er
20 kommentarer og 1 løsning
Drag layer
Hej
Jeg har lidt problemer med et drag script. Det virker fint - men når jeg sætter en tabel ind i mellem div taggene, så sker der intet:
Her er min kode - Håber at der er nogen der kan hjælpe :)
<script language=\"JavaScript1.2\"> var dragapproved=false var z,x,y function move(){ if (event.button==1&&dragapproved){ z.style.pixelLeft=temp1+event.clientX-x z.style.pixelTop=temp2+event.clientY-y return false } }
function drags(){ if (!document.all) return if ((event.srcElement.parentElement.id==\"drag\") || (event.srcElement.parentElement.id==\"showUr\")){ dragapproved=true z=event.srcElement.parentElement temp1=z.style.pixelLeft temp2=z.style.pixelTop x=event.clientX y=event.clientY document.onmousemove=move } } document.onmousedown=drags document.onmouseup=new Function(\"dragapproved=false\") //--> </script>
En løsning kunne være at neste to div layers der fylder det samme, men har et forskelligt z-index. Det ene skal så indeholde din tabel og have z-index:1 det andet skal være gennemsigtigt og have z-index:2. Så vil du have et usynligt lag der fanger alle events som visuelt ser ud til at ske på din tabel (håber det giver mening)
<div id=\"indholdsLayer\" style=\"position:absolute;left:0;top:0;width:100;height:100;z-index:1\"> <!-- her skal din tabel være --> </div>
</div>
altså det layer der hedder drag er parent til eventFanger og indholdsLayer, men eventFanger har et højere z-index så det fanger alle events! De to nestede layers skal selfølgelig have samme størrelse for at tricket virker.
Det løser problemet med Tabellen, men skaber et nyt. Man kan ikke længere trække billed og tekst rundt. Man kan kun dragge det hvis man klikker udenfor teksten og billedet - jeg går ud fra at det er <div id=\"indholdsLayer\"> der gør det?
hmm, hos mig er der ikke noget problem. Prøv med den her kode som jeg testede med:
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"> <HTML> <HEAD> <TITLE>[Ingen titel]</TITLE>
<script language=\"JavaScript1.2\"> var dragapproved=false var z,x,y function move(){ if (event.button==1&&dragapproved){ z.style.pixelLeft=temp1+event.clientX-x z.style.pixelTop=temp2+event.clientY-y return false } }
function drags(){ if (!document.all) return if ((event.srcElement.parentElement.id==\"drag\") || (event.srcElement.parentElement.id==\"showUr\")){ dragapproved=true z=event.srcElement.parentElement temp1=z.style.pixelLeft temp2=z.style.pixelTop x=event.clientX y=event.clientY document.onmousemove=move } } document.onmousedown=drags document.onmouseup=new Function(\"dragapproved=false\") //--> </script>
Desværre ikke - jeg har erstattet min egen kode med ovenstående kode, og resultatet er det samme. Siges skal det at filen hvor drag koden ligger, er en include fil.
Jep - den er god nok - Alert \"eventFanger\", den har jeg også fået. Jeg har afprøvet dit script, og billedet og teksten flytter sig, når man holder musen nede på enten billedet og teksten. Og fjerner man Alert; så virker det ikke når man igen prøver holde musen nede over billedet eller teksten.
Dit Scriptet virker fint, men hvis du prøver at dragge i enten teksten eller billedet, så virker det desværre ikke. Ihvertefald ikke på min browser(ID5.5)
ups, der var vist en alert for meget, det skulle være fikset nu. For at få dette til at virke så har jeg indsat en ekstra parentElement i drag funktionen
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.