Avatar billede mr.gessle Nybegynder
10. oktober 2001 - 13:30 Der er 6 kommentarer og
1 løsning

DHTML: Bevægelse af billeder

Jeg har 4 billeder, der er positioneret til at starte fire forskellige steder på skærmen.
Venstre nederste og øverste hjørne.
Højre nederste og øverste hjørne.

Jeg bruger et timerobjekt, der kalder en metode, som konstant opdaterer den absolutte position med værdien 1.

function bevaegBolde()
{
    boldVenstreHj  += motionVenstreBolde;
    boldVenstreHjØ += motionVenstreBolde;
    boldHøjreHj    += motionHøjreBolde;
    boldHøjreHjØ  += motionHøjreBolde;


    Ball1.style.left     = boldVenstreHjØ;
    Ball2.style.left    = boldVenstreHj;
    Ball3.style.right    = boldHøjreHjØ;
    Ball4.style.right    = boldHøjreHj;
}

De fire balls har hvert et tag. Den første ser således ud:
<ID=\"Ball1\" img src=\"Ball1.gif\" STYLE=\"position: absolute; top: 0px; left: 0px; \">

Hvorfor virker det bare ikke?

Jeg bruger BODY Onload eventen til at kalde min startmetode, der initierer et timerobjekt.
Avatar billede gitrian Nybegynder
10. oktober 2001 - 13:39 #1
Prøv evt. at lade være med at bruge de danske bogstaver (æøå) i din kode
Avatar billede mr.gessle Nybegynder
10. oktober 2001 - 13:49 #2
Yup - dårlig vane.
Er rettet med skidtet virker stadig ikke.


<HTML>
<HEAD>
    <TITLE>Crash Into World Trade Center</TITLE>

<SCRIPT LANGUAGE=\"javascript\">
var teller = -1;
var boldVenstreHj =0;
var boldVenstreHjO =0;
var boldHojreHj =0;
var boldHojreHjO =0;

var motionVenstreBolde = 1;
var motionHojreBolde = 1;

<!-- Denne startmetode loades når sidens body vises. Altså ved sideindlæsning.
Metoden starter timerobjekter -->
function start()
{
  window.setInterval (\"bevaegBolde()\", 10);
}



function bevaegBolde()
{
    boldVenstreHj  += motionVenstreBolde;
    boldVenstreHjO += motionVenstreBolde;
    boldHøjreHj    += motionHojreBolde;
    boldHøjreHjO  += motionHojreBolde;


    Ball1.style.left     = boldVenstreHjO;
    Ball2.style.left    = boldVenstreHj;
    Ball3.style.right    = boldHojreHjO;
    Ball4.style.right    = boldHojreHj;


    <!--Her checkes for om skærmens dimensioner overskrides.
    I så fald nulstilles de respektive startpositioner. -->
    if ((boldVenstreHj > screen.width) || (boldVenstreHj < 0))
      boldVenstreHj = 0;

    if ((boldVenstreHjO > screen.height) || (boldVenstreHjO < 0))
      boldVenstreHjO = 0;

    if ((boldHojreHj > screen.height) || (boldHojreHj < 0))
      boldHojreHj = 0;

    if ((boldHojreHjO > screen.height) || (boldHojreHjO < 0))
      boldHojreHjO = 0;
}


</SCRIPT>

</HEAD>
<BODY ONLOAD=\"start()\">


<!-- Her positioneres boldenes start med absolut positionering. -->
<ID=\"Ball1\" img src=\"Ball1.gif\" STYLE=\"position: absolute; top: 0px; left: 0px; \">
<ID=\"Ball2\" img src=\"Ball2.gif\" STYLE=\"position: absolute; bottom: 0px; left: 0px; \">
<ID=\"Ball3\" img src=\"Ball3.gif\" STYLE=\"position: absolute; top: 0px; right: 0px; \">
<ID=\"Ball4\" img src=\"Ball4.gif\" STYLE=\"position: absolute; bottom: 0px; right: 0px; \">



</BODY>
</HTML>
Avatar billede mr.gessle Nybegynder
10. oktober 2001 - 13:53 #3
De resterende Ø\'er er fjernet...
Avatar billede jakoba Nybegynder
10. oktober 2001 - 14:20 #4
det er ikke nogen <ID kommando i html. ID=\'xxx\' er parameter til <IMG kommandoen

<IMG ID=\"Ball1\" src=\"Ball1.gif\" STYLE=\"position: absolute; top: 0px; left: 0px; \">
<img ID=\"Ball2\" src=\"Ball2.gif\" STYLE=\"position: absolute; bottom: 0px; left: 0px; \">
<img ID=\"Ball3\" src=\"Ball3.gif\" STYLE=\"position: absolute; top: 0px; right: 0px; \">
<IMG ID=\"Ball4\" src=\"Ball4.gif\" STYLE=\"position: absolute; bottom: 0px; right: 0px; \">

mvh JakobA
Avatar billede gitrian Nybegynder
10. oktober 2001 - 14:27 #5
JakobA >> Godt set
Avatar billede jakoba Nybegynder
10. oktober 2001 - 15:43 #6
der er vist heller ikke nogen .right attribut i style objektet du kan indstille med.
    Ball3.style.right    = boldHojreHjO;
    Ball4.style.right    = boldHojreHj;

mon ikke det skulle være
    var vinduesBredde = (document.all)?document.body.clientWidth:window.innerWidth;
    Ball3.style.left    = vindueBredde -billedbredde -boldHojreHjO;
    Ball4.style.left    = vindueBredde -billedbredde -boldHojreHj;

billedbredde er bredden på dine bold3 og bold4 billeder.

mvh JakobA
Avatar billede tobias_cool Nybegynder
12. oktober 2001 - 20:22 #7
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