how to pause marquee??

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
prue_
Forum Commoner
Posts: 64
Joined: Thu May 07, 2009 10:34 pm

how to pause marquee??

Post by prue_ »

hi there, I got this code form dynamic drive.. it pauses when you mouseover, but how can i pause the scroll?? for example after the marquee has started to scroll i wanted to pause the scroll for about 10 secs then start to scroll again? is it possible with the code below.. thanks a lot.

Code: Select all

<style type="text/css">
 
#marqueecontainer{
position: relative;
width: 200px; /*marquee width */
height: 200px; /*marquee height */
background-color: white;
overflow: hidden;
border: 3px solid orange;
padding: 2px;
padding-left: 4px;
}
 
</style>
 
<script type="text/javascript">
 
/***********************************************
* Cross browser Marquee II- © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
 
var delayb4scroll=2000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeed=2 //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
 
 
</script>
User avatar
kaszu
Forum Regular
Posts: 749
Joined: Wed Jul 19, 2006 7:29 am

Re: how to pause marquee??

Post by kaszu »

Add following

Code: Select all

//Variable which will hold 'paused' state (true - scroll is paused, false - it's not)
var marquee_paused = false;
 
//Call this function to pause scroll for 10 seconds
function pausescroll () {
    //Set state to true, which will prevent scrolling
    marquee_paused = true;    
 
    //Wait 10 seconds and restore state
    setTimeout(function () {
        //Set paused state to false, which will resume scrolling
        marquee_paused = false;
    }, 10000);    //10 seconds == 10000 milliseconds
}
function scrollmarquee(){
    //If paused state is true, then exit and don't scroll
    if (marquee_paused) return;
    ....
A lot better solution would be to stop scroll interval on pausescroll() and create a new one after 10 seconds, but i'm too lazy to write it for you :)

You should read:
W3Schools setInterval / clearInterval
W3Schools setTimeout / clearTimeout
Javascript Basics
Post Reply