PDA

View Full Version : Cross Browser marquee II



charlesbucket
01-26-2005, 07:57 PM
http://www.dynamicdrive.com/dynamicindex2/cmarquee2.htm

I have altered this script to slow down the scrolling and insert pause/play buttons.
The pause/play buttons work with the onMouseover event.
When clicked the buttons refresh the page and restart the scroller.

Is there a way to make the buttons pause & restart the scroller without refreshing the page?
Please help if you can.

Here is the page:
http://www.studiomoon.com/viale_test/clients.html

Here is the script:

<script language="JavaScript1.2">

/*
Cross browser Marquee II- Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and TOS, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

//Specify the marquee's width (in pixels)
var marqueewidth="435px"
//Specify the marquee's height
var marqueeheight="335px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=1
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):

var marqueecontent='<p>MISC CONTENT REMOVED</p>'


////NO NEED TO EDIT BELOW THIS LINE////////////

marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
var actualheight=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualheight=cross_marquee.offsetHeight
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.top=parseInt(marqueeheight)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualheight=ns_marquee.document.height
}
lefttime=setInterval("scrollmarquee()",100)
}
window.onload=populate

function scrollmarquee(){

if (iedom){
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"
}
else if (document.layers){
if (ns_marquee.top>(actualheight*(-1)+8))
ns_marquee.top-=copyspeed
else
ns_marquee.top=parseInt(marqueeheight)+8
}
}

if (iedom||document.layers){
with (document){
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px;width:100%;">')
write('</div></div>')
write('<img src="images/spacer.gif" width="16" height="10"><a href=""onMouseover="copyspeed=pausespeed"><img src="images/pause.gif"></a>')
write('<img src="images/spacer.gif" width="16" height="10"><a href=""onMouseover="copyspeed=marqueespeed"><img src="images/play.gif"></a>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">')
write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0></layer>')
write('</ilayer>')
write('<img src="images/spacer.gif" width="16" height="10"><a href=""onMouseover="copyspeed=pausespeed"><img src="images/pause.gif"></a>')
write('<img src="images/spacer.gif" width="16" height="10"><a href=""onMouseover="copyspeed=marqueespeed"><img src="images/play.gif"></a>')
}
}
}
</script>

charlesbucket
01-27-2005, 08:59 PM
Nevermind, fixed it by placing the mouse event on an 'img src' tag. Works great now.