Waardering:
- 0 stemmen - gemiddelde waardering is 0
- 1
- 2
- 3
- 4
- 5
|
Mijn bewegende object doet niet wat ik wil..
|
| Auteur |
Bericht |
yasmin__
I (L) Java
 
Berichten: 31
Lid sinds: 07-2008
Reputatie: 0
|
Mijn bewegende object doet niet wat ik wil..
Nou probeerde ik uit mijn hoofd een bewegend object te maken
aan de hand van een ander voorbeeld.. ik begreep de code van dat voorbeeld
wel maar als test wilde ik kijken of ik zoiets ook uit mijn hoofd
kon maken....
Ik wilde zo een effect als:
http://www.xs4all.nl/~vdnet/dom_animatie2.html
Maar nu doet mijn code het niet dus weet iemand misschien wat er fout is?
Citaat:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<style type="text/css">
#object {
border: 4px solid #000;
}
</style>
<script type="text/javascript">
function bewegen() // beweeg functie
{
var objec= document.getElementById("object");
var x= parseInt(objec.style.left);
var y= parseInt(objec.style.top);
var boven= 0;
var onder= 300;
var rechts= 300;
var links= 0;
var snelx= 2;
var snely= 2;
if(x < links || x >= rechts)
{
snelx = snelx * -2;
}
if(y < boven || y > onder)
{
snely = snely* -2;
}
document.getElementById("object").style.left= x+ snelx + "px";
document.getElementById("object").style.top= y+ snely + "px";
setTimeout('bewegen()',10); // roept zichzelf aan om het bewegen te kunnen voortsetten
}
</script>
</head>
<body onload="bewegen()">
<p id="object">object</p>
</body>
</html>
|
|
| 20-07-2008 18:02:21 |
|
yasmin__
I (L) Java
 
Berichten: 31
Lid sinds: 07-2008
Reputatie: 0
|
RE: Mijn bewegende object doet niet wat ik wil..
Anjo schreef:Denk het wel ja, maar als code online staat, kan je mooi zien waar het mis gaat En zit hier nu op pc die niet zo van lokaal draaien houdt+ik ben lui
is niet mijn code hoor....die online staat.
De code hierboven is enkel het op mijn manier gemaakte object dat niet werkt..
Dus ik wilde graag weten wat er fout was aan de code die ik uit mijn hoofd
probeerde te maken, want ikzelf heb 3 uur lang zitten testen maar kwam er niet uit..
heb er tenslotte al mijn hele dag aan besteed..
(Dit bericht is het laatst bewerkt op 20-07-2008 om 19:23:08 door yasmin__.)
|
|
| 20-07-2008 19:14:33 |
|
MichielV
ep2'er
   
Berichten: 2.326
Lid sinds: 07-2006
Reputatie: 110
|
RE: Mijn bewegende object doet niet wat ik wil..
Jquery is overroepen  Echt overkill voor zoiets vind ik.
En werkt het als je in je css bij # object position: absolute zet?
|
|
| 21-07-2008 10:45:20 |
|
Aries-Belgium
Open Source Promotor
Berichten: 8.690
Lid sinds: 04-2006
Reputatie: 310
|
RE: Mijn bewegende object doet niet wat ik wil..
Matthijn schreef:Daarnaast is jQuery laten we zeggen 60kb
13kb  de minified versie is 13kb
Oké, back on topic.
Eén van de problemen is inderdaad dat het absoluut moet gepositioneerd zijn. Maar dan zal het nog niet werken. yasmin__ leest het style attribuut van het element uit maar die is helemaal niet geset. Ik denk dat ze best de offsetTop en de offsetLeft uitleest om de exacte positie te kennen van het object en daarop verder gaan. Bij die veranderingen gaat het al werken alleen blijft gaat hij niet verder gaan dan 300px omdat ze telkens de snelheid gaat resetten naar 2 en dan gaat checken of de positie van het object niet uit het opgegeven vlak komt en dan de snelheid negatief maken (eigenlijk verdubbelen en negatief maken in bovenstaande code) maar hij onthoudt het niet dus hij gaat maar wat liggen botsen in die hoek. Je moet dus de snelheid telkens meegeven met de functie. Dit is een aangepaste versie van bovenstaande code om het werkende te krijgen:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<style type="text/css">
#object {
border: 4px solid #000;
position:absolute;
}
</style>
<script type="text/javascript">
function bewegen(snelx,snely) // beweeg functie
{
var objec= document.getElementById("object");
var x= parseInt(objec.offsetLeft);
var y= parseInt(objec.offsetTop);
var boven= 0;
var onder= 300;
var rechts= 300;
var links= 0;
if(x <= links || x >= rechts)
{
snelx *= -1;
}
if(y <= boven || y >= onder)
{
snely *= -1;
}
document.getElementById("object").style.left= x + snelx + "px";
document.getElementById("object").style.top= y + snely + "px";
setTimeout(function(){ bewegen(snelx,snely)},10); // roept zichzelf aan om het bewegen te kunnen voortsetten
}
</script>
</head>
<body onload="bewegen(2,1)">
<span id="object">object</span>
</body>
</html>
![[Afbeelding: 2wqbwas.gif]](http://i47.tinypic.com/2wqbwas.gif)
"I like my women how I like my toast, hot and consumable with butter"
|
|
| 21-07-2008 14:58:44 |
|
Matthijn
Schnabbel
    
Berichten: 5.027
Lid sinds: 04-2006
Reputatie: 47
|
|
| 21-07-2008 15:59:37 |
|
Aries-Belgium
Open Source Promotor
Berichten: 8.690
Lid sinds: 04-2006
Reputatie: 310
|
RE: Mijn bewegende object doet niet wat ik wil..
Offtopic 
Matthijn schreef:en daarna wordt het gecached
Als iedereen jQuery van de Google AJAX Libraries API zou includen, zal het altijd gecached zijn zelfs cross-website.
Je hoeft niet door de google.load functie te gaan. Je kan het ook rechtstreeks includen:
Code:
http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js
![[Afbeelding: 2wqbwas.gif]](http://i47.tinypic.com/2wqbwas.gif)
"I like my women how I like my toast, hot and consumable with butter"
|
|
| 21-07-2008 16:16:23 |
|