[JavaScript] Het scrollen in <marquee> stoppen bij mouseover
Ik heb vandaag een beetje zitten puzzelen. Ik wil graag dat als een gebruiker met zijn muis over het marquee gedeelte gaat, dat hij dan stopt met scrollen.
In FireFox is dit gelukt, maar ik heb mij laten vertellen dat het in Internet Explorer niet goed werkt, en dat je de volgende error krijgt:Je kunt het hier vinden: marquee.php.
Het gaat hierbij dus met name om de functies start(e) en stop(e). De overflow error van IE kreeg ik bij de volgende functies:Ik heb ook dit geprobeert:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function start (e)
{
this.setAttribute('scrolldelay' , '3');
}
function stop(e)
{
this.setAttribute('scrolldelay' , '9999999999');
}
{
this.setAttribute('scrolldelay' , '3');
}
function stop(e)
{
this.setAttribute('scrolldelay' , '9999999999');
}
Weten jullie hoe dit wel moet?
Alvast bedankt voor de hulp.
Groeten,
Boris
Gewijzigd op 01/01/1970 01:00:00 door K i p
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function start (e)
{
this.setAttribute('scrollamount' , '3');
}
function stop(e)
{
this.setAttribute('scrollamount' , '0');
}
{
this.setAttribute('scrollamount' , '3');
}
function stop(e)
{
this.setAttribute('scrollamount' , '0');
}
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function start (e)
{
document.getElementById('top5_down').setAttribute('scrollamount' , '3');
}
function stop(e)
{
document.getelementById('top5_down').setAttribute('scrollamount' , '0');
}
{
document.getElementById('top5_down').setAttribute('scrollamount' , '3');
}
function stop(e)
{
document.getelementById('top5_down').setAttribute('scrollamount' , '0');
}
Gewijzigd op 01/01/1970 01:00:00 door K i p
Als je het nu op die manier in je pagina (marquee.php, de link die je eerder postte) hebt verwerkt, werkt het niet in IE. Probeer een combinatie te maken in die functie.
Hoe bedoel je precies een combinatie? Kan je me een klein duwtje geven?
Om anderen voor te zijn...marquee is niet w3c-valid!
Saimen schreef op 05.02.2007 16:04:
Om anderen voor te zijn...marquee is niet w3c-valid!
Dus?
Maar goed. Ik weet niet of het de bedoeling is dat als ik in Firefox 2 over de linker marquee heen ga, dat de rechter dan stopt en de linker niet? en als ik dan over de rechter ga, stopt de rechter ook en niet de linker.
Ik draai Firefox 2.0.0.1, Ubuntu 6.10 Edgy Eft.
En de stop waar je het over hebt. Ik kan het hier niet controleren, maar is er niet een combinatie te maken in de 2 functies? Of door een if ie te maken? dat de versie die werkt bij ie, die wordt gebruikt bij ie en de versie die bij de rest werkt wordt gebruikt bij de rest? (if u get wht i mean..)
Quote:
IddQuote:
Dus?Om anderen voor te zijn...marquee is niet w3c-valid!
Quote:
Dat doet er nu even niet toe. Ik weet hoe dit komt, maar het is alleen even om te testen, let alleen op de rechter. Ik weet niet of het de bedoeling is dat als ik in Firefox 2 over de linker marquee heen ga, dat de rechter dan stopt en de linker niet?
Ik snap je punt met ifIE maar welke werkt dan in IE?
Boris schreef op 05.02.2007 17:15:
Ik snap je punt met ifIE maar welke werkt dan in IE?
Quote:
IddQuote:
Dus?Om anderen voor te zijn...marquee is niet w3c-valid!
Quote:
Dat doet er nu even niet toe. Ik weet hoe dit komt, maar het is alleen even om te testen, let alleen op de rechter. Ik weet niet of het de bedoeling is dat als ik in Firefox 2 over de linker marquee heen ga, dat de rechter dan stopt en de linker niet?
Ik snap je punt met ifIE maar welke werkt dan in IE?
Ik bedoel maar....je kunt beter w3c-valid programeren, dan werkt alles goed! Dus zo gek is het niet hoor!!
www.fczeselectie.nl staat een verticale lichtkrant, misschien heb je daar wat aan. Hij is XHTML valid volgens mij. Als je hem horizontaal wilt hebben zul je hem wel even om moeten bouwen.
Op Code (php)
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
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
/***********************************************
* Cross browser Marquee II- Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var delayb4scroll=200 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeed=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseit=1 //Pause marquee onMousever (0=no. 1=yes)?
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var actualheight=''
function scrollmarquee(){
if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px"
else
cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
}
function initializemarquee(){
cross_marquee=document.getElementById("vmarquee")
cross_marquee.style.top=0
marqueeheight=document.getElementById("marqueecontainer").offsetHeight
actualheight=cross_marquee.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marquee.style.height=marqueeheight+"px"
cross_marquee.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarquee()",30)', delayb4scroll)
}
if (window.addEventListener)
window.addEventListener("load", initializemarquee, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarquee)
else if (document.getElementById)
window.onload=initializemarquee
* Cross browser Marquee II- Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var delayb4scroll=200 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeed=1 //Specify marquee scroll speed (larger is faster 1-10)
var pauseit=1 //Pause marquee onMousever (0=no. 1=yes)?
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var actualheight=''
function scrollmarquee(){
if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px"
else
cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
}
function initializemarquee(){
cross_marquee=document.getElementById("vmarquee")
cross_marquee.style.top=0
marqueeheight=document.getElementById("marqueecontainer").offsetHeight
actualheight=cross_marquee.offsetHeight
if (window.opera || navigator.userAgent.indexOf("Netscape/7")!=-1){ //if Opera or Netscape 7x, add scrollbars to scroll and exit
cross_marquee.style.height=marqueeheight+"px"
cross_marquee.style.overflow="scroll"
return
}
setTimeout('lefttime=setInterval("scrollmarquee()",30)', delayb4scroll)
}
if (window.addEventListener)
window.addEventListener("load", initializemarquee, false)
else if (window.attachEvent)
window.attachEvent("onload", initializemarquee)
else if (document.getElementById)
window.onload=initializemarquee
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table cellspacing="0" cellpadding="0">
<tr>
<td class="boven">Actueel</td>
</tr>
<tr>
<td class="midden" style="padding-top: 0px; padding-bottom: 0px;">
<div id="marqueecontainer" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">
<div id="vmarquee" style="position: absolute; width: 98%;">
Hier je tekst<br /><br />
En hier nog wat tekst.<br /><br />
Lorem ipsum dolor sit amet enz...
</div>
</div>
<tr>
<td class="boven">Actueel</td>
</tr>
<tr>
<td class="midden" style="padding-top: 0px; padding-bottom: 0px;">
<div id="marqueecontainer" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">
<div id="vmarquee" style="position: absolute; width: 98%;">
Hier je tekst<br /><br />
En hier nog wat tekst.<br /><br />
Lorem ipsum dolor sit amet enz...
</div>
</div>
Gewijzigd op 01/01/1970 01:00:00 door - -
Quote:
Ook zonder JavaScript? Sommige bezoekers van je website zullen geen JavaScript hebben, en wel sch*t aan W3C. Ik vind het leuk om ze dan toch een lichtkrant aan te bieden (ook al werkt die niet in alle browsers). Ik bedoel maar....je kunt beter w3c-valid programeren, dan werkt alles goed! Dus zo gek is het niet hoor!!
@Herjan: Hee die ziet er leuk uit :-) Alleen het probleem bij die is dat je hem meteen helemaal ziet, en dat hij dan omhoog gaat scrollen. Als hij dan helemaal weg is dan ploept ie weer opeens. Het komt dan een beetje haperig over. Ook moet je hem persé met position: absolute; doen, wat toch wel een nadeel is. Hij gaat wel lekker smooth.
Dus, kent iemand er nog één (betere)? Of ziet iemand het probleem bij mijn code?
Ze kunnen wel sch*t hebben aan w3c, maar niet als het niet werkt. Maar goed...het is een kwestie van smaak denk ik! :-). Het was verder niet negatief tegen jou bedoeld or!
Quote:
(ook al werkt die niet in alle browsers)
Quote:
Maar goed, idd een kwestie van smaak. Als browsers die tag niet kennen dan negeren ze hem waarschijnlijk en zetten ze de gewone content neer.Ze kunnen wel sch*t hebben aan w3c, maar niet als het niet werkt.