Javascript werkt niet in FF wel in IE7

Status
Niet open voor verdere reacties.

marshallmaster

Gebruiker
Lid geworden
20 jan 2008
Berichten
8
ik heb een vraagje, het gaat over de slider functie op de pagina:

http://www.pwnedyou.org/ssha1/index.php

als er op het pijltje geklikt wordt, word de functie showmenu() aangeroepen. als volgt:
Code:
<div id="sluitbutton" class="button-balk-sluit" onclick="showmenu()">

zo lijst het javascript stuk:
Code:
var i=0;
var intHide;
var intShow;
var speed=10;
var uit=1;
var currentpage;
var documentinfo;

function showmenu()
{
	if(uit==0){
		clearInterval(intHide);
		intShow=setInterval("show()",10);
		uit=1;
	}
	
	else{
		clearInterval(intShow);
		intHide=setInterval("hide()",10);
		uit=0;
	}
}
function show()
{
if (i<0)
	{
		i=i+speed;
		document.getElementById('div-mainholder').style.left=i;
		document.getElementById('sluitbutton').style.background='url(\'image/buttons/schuifbalk-button-sluit.png\')';
	}
	
}
function hide()
{
if (i>-570)
	{
		i=i-speed;
		document.getElementById('div-mainholder').style.left=i;
		document.getElementById('sluitbutton').style.background='url(\'image/buttons/schuifbalk-button-open.png\')';
	}
}

In IE7 werkt hij dus wel alleen in FF werkt hij niet...
iemand een idee?

bedankt alvast
 
+ 'px' achter de i bij de .style.left. :)

Probeer maar eens:
PHP:
javascript:void(document.getElementById('div-mainholder').style.left = -570 + 'px');
op de adresbalk. Raar genoeg doet Fx het wel zonder 'px' met positieve waarden. :)

Maar ik zou de functie(s) ook wat herschrijven, nu blijft het doorlopen en het plaatje wordt steeds opnieuw bepaald. Ongeveer zo:
PHP:
var i=0;
var timer = 0;
var speed=10;
var direction = 1;
var currentpage;
var documentinfo;

function showmenu() {
 if (timer) clearInterval(timer);
 direction = -direction;
 document.getElementById('sluitbutton').style.background = direction == 1 ? 'url(\'image/buttons/schuifbalk-button-sluit.png\')' : 'url(\'image/buttons/schuifbalk-button-open.png\')';
 timer = setInterval("move()",10);
};

function move() {
i += direction * speed;
i = Math.max(-570,Math.min(i,0));
document.getElementById('div-mainholder').style.left= i + 'px';
if (i == 570 || i == 0) clearInterval(timer);
};
(Nog niet getest.)
Dan stopt de functie aan de uiteinden en kun je zelfs tijdens het bewegen weer de andere kant opgaan. :)


Vr.Gr. Egel.
 
Laatst bewerkt:
hej Egel!

bedankt voor je reactie...
Je eerste optie werkt perfect!
tenminste hij schuift nu maar happert nog wel.
Dit komt waarschijnlijk doordat hij telkens nieuw plaatje laat..

ik zal laten naar jou alternatief gaan kijken als ik wat meer tijd heb, want staan nog wel wat syntax fouten...

maar je wordt iig erg bedankt, weer wat geleerd zeg maar ;)
 
Ik had maar één syntax-foutje! ;) De ; die achter 570 stond:
PHP:
if (i == 570; || i == 0) clearInterval(timer);

Net wel getest en het doet 't met IE, Fx en Opera. Zie bijlage. :)

Ik denk dat het nog wat schokkerig blijft doordat flash-content scrollen veel van de processor vraagt, dat zou je dan kunnen oplossen door grotere stappen met meer tijd ertussen te nemen.


Vr.Gr. Egel.
 

Bijlagen

Laatst bewerkt:
Hej super man!

hier kan ik wel wat mee...
Super...

ja dat schokkerige komt waarschijnlijk door flash filmpje...

Zo leer je weer eens wat hé. Wel stom zulke dingen moet je maar net weten dat er px achter moet, maarja.. Daar heb je dus Forums voor :)

nogmaals thx
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan