[javascript] scriptje werkt niet

Pagina: 1
Acties:

  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
ik heb een code op een page die 2 lijnen tekent (een hor en een vert, allebei blauw) en die snijden op het punt waar je muis staat.
maar nu wil ik dat als je klikt dat de 2 lijnen in een andere kleur: rood blijven staan en dat je dan gewoon verder kan met de blauwe lijnen.
ik heb nu onderstaand scriptje, je kan 8 keer een punt aanklikken, daarna begint hij weer opnieuw.
een voorbeeldje van dit scriptje kan je zien op http://pieter.shadax.mine.nu/lrb/mouse3.html
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<html>
<head>
<title>.::MOUSE::.</title>
<script language="JavaScript">
<!-- Begin
function Mouse(e) {
    document.pic1.width=Math.max(document.body.clientWidth, document.body.scrollWidth);
    var newtop = event.clientY + document.body.scrollTop;
        if (newtop > document.body.clientHeight + document.body.scrollTop) newtop = document.body.clientHeight + document.body.scrollTop - 1;
        div1.style.pixelTop=newtop;
    document.pic2.height=Math.max(document.body.clientHeight, document.body.scrollHeight);
    var newleft = event.clientX + document.body.scrollLeft;
        if (newleft > document.body.clientWidth + document.body.scrollLeft) newleft = document.body.clientWidth + document.body.scrollLeft - 1;
        div2.style.pixelLeft=newleft;
}

num=-1;

function Click(e) {
num=num+2;
if (num==11)
num=1;
num2 = num+1;
var div01 = "div"+num+"";
var div02 = "div"+num2+"";
var pic01 = "pic"+num+"";
var pic02 = "pic"+num2+"";

alert(num+"\n"+num2);

    document[pic01].width=Math.max(document.body.clientWidth, document.body.scrollWidth);
    var newtop = event.clientY + document.body.scrollTop;
        if (newtop > document.body.clientHeight + document.body.scrollTop) newtop = document.body.clientHeight + document.body.scrollTop - 1;
        div01.style.pixelTop=newtop;
    document[pic02].height=Math.max(document.body.clientHeight, document.body.scrollHeight);
    var newleft = event.clientX + document.body.scrollLeft;
        if (newleft > document.body.clientWidth + document.body.scrollLeft) newleft = document.body.clientWidth + document.body.scrollLeft - 1;
        div02.style.pixelLeft=newleft;
}

document.onmouseover = Mouse;
document.onmousemove = Mouse;
document.onclick = Click;
// End -->
</script>
</head>
<body style="overflow: auto">
<div id="div1" style="position:absolute; left: 0px; height: 1px;">[img]"blauw.jpg"[/img]</div>
<div id="div2" style="position:absolute;  top: 0px;  width: 1px;">[img]"blauw.jpg"[/img]</div>
<div id="div3" style="position:absolute; left: 0px; height: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div4" style="position:absolute;  top: 0px;  width: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div5" style="position:absolute; left: 0px; height: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div6" style="position:absolute;  top: 0px;  width: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div7" style="position:absolute; left: 0px; height: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div8" style="position:absolute;  top: 0px;  width: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div9" style="position:absolute; left: 0px; height: 1px;">[img]"rood.jpg"[/img]</div>
<div id="div10" style="position:absolute;  top: 0px;  width: 1px;">[img]"rood.jpg"[/img]</div>
</body>
</html>

maar nu geeft hij een error dat style geen object is op de regel waar staat: div01.style.pixelTop=newtop;
wete iemand wat ik fout doe?

2 swim or not 2 swim, that's the question


Verwijderd

FF snel...misschien:
var div01 = "div"+num+"";
moet zijn
var div01 = eval("div"+num);

edit:
let wel: voor var pic01 = "pic"+num+""; hoeft het niet!

Verwijderd

moet het niet zijn:

document.div01.style.pixelTop=newtop;

?

  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
Op woensdag 16 januari 2002 18:30 schreef Donkey het volgende:
moet het niet zijn:

document.div01.style.pixelTop=newtop;

?
nope, bij divjes moet je gewoon div.style, geen document ervoor

2 swim or not 2 swim, that's the question


  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
in het scriptje staan nu 8 divjes die een plaats krijgen als je klikt, als je ze allemaal hebt gebruikt, begint hij weer bij 1, maar is er ook een manier om te zorgen dat je gewoon door kan blijven klikken, zonder 100en divjes te gebruiken?

2 swim or not 2 swim, that's the question


Verwijderd

Op woensdag 16 januari 2002 20:18 schreef aqua_man het volgende:

[..]

nope, bij divjes moet je gewoon div.style, geen document ervoor
nope, bij divjes moet je vrij weinig:
- document.all.divName.style
- document.divName.style
- divName.style
mag in IE allemaal.

Verwijderd

Op woensdag 16 januari 2002 20:19 schreef aqua_man het volgende:
in het scriptje staan nu 8 divjes die een plaats krijgen als je klikt, als je ze allemaal hebt gebruikt, begint hij weer bij 1, maar is er ook een manier om te zorgen dat je gewoon door kan blijven klikken, zonder 100en divjes te gebruiken?
Ja, dat kan. Je kunt eventueel DIVs toevoegen door de HTML in een string te gooien:
code:
1
var the_html = '<div id="div'+x+'" style="position:absolute; left: 0px; height: 1px;">[img]"blauw.jpg"[/img]</div>';

en die dan te appenden aan de body:
code:
1
document.body.insertAdjacentHTML("BeforeEnd",the_html);

Let op de x in het eerste stuk code, zorg dat die elke keer uniek is!

  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
tnx, scriptje werkt nou *D , maar ik vind er nu nix aan.
dus ik dacht, ik zet er een boodschap in het wit achter.
normaal is de achtergrond wit, dus kan je de tekst (in een divje) niet zien, maar als je steeds lijnen neerzet, moet hij zichtbaar worden (wit zie je wel op rood >:) )
ik dacht dat dat heel simpel was (is het vast ook), dus ik had gewoon een divje gemaakt met een witte tekst erin en elke keer als je klikt wordt dit divje gefocusd, maar de tekst verschijnt niet als je klikt :(
wat doe ik fout? :?

2 swim or not 2 swim, that's the question


  • aqua_man
  • Registratie: Januari 2002
  • Laatst online: 26-07-2023

aqua_man

one life, live it!

Topicstarter
oja, nog een vraagje:
weet iemand hoe ik dat divje met de text in het midden van het scherm krijg?
ik heb nu:
code:
1
2
3
4
5
6
7
8
9
10
11
<script language="javascript">
function Load() {
var left = Math.max(document.body.clientWidth, document.body.scrollWidth);
var top = Math.max(document.body.clientHeight, document.body.scrollHeight);
var left = left / 2 - div0.style.pixelwidth;
var top = top / 2 - div0.style.pixelheight;
div0.style.pixelleft = left;
div0.style.pixeltop = top;
}
</script>
<body onload=Load()>

2 swim or not 2 swim, that's the question

Pagina: 1