PDA

View Full Version : Scrolling Marquee Help



TooN
08-03-2007, 06:02 PM
1) Script Title: Cross Browswer Marquee

2) Script URL (on DD):
http://www.dynamicdrive.com/dynamicindex2/cmarquee.htm

3) Describe problem: Basically i want it the marquee to scroll three pictures across the screen.
It does it but then when it trails offscreen, it just disappears after the first picture.
Here is the code.


<script language="JavaScript1.2">

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

//Specify the marquee's width (in pixels)
var marqueewidth="800px"
//Specify the marquee's height
var marqueeheight="250px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=4
//configure background color:
var marqueebgcolor="#003399"
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=1

//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):

var marqueecontent='<nobr><a href=retail.html><IMG SRC=one.JPG width=200 height=150></a><a href=coporate.html><IMG SRC=two.JPG width=200 height=150><a href=institution.html><IMG SRC=three.JPG width=200 height=150></nobr>'


////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
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee

function populate(){
if (iedom){
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers){
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=parseInt(marqueewidth)+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate

function scrollmarquee(){
if (iedom){
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
else
cross_marquee.style.left=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=parseInt(marqueewidth)+8
}
}

if (iedom||document.layers){
with (document){
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom){
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>

TooN
08-03-2007, 06:31 PM
Also while im at it,
it takes the marquee a while to first appear on the page.
Is there a way to speed that up or start it on the page instead of off?

Veronica
08-03-2007, 07:02 PM
I'm not sure what you mean when you say it's a problem that it will "trail off the screen and disappear." That's what a scrolling marquee is supposed to do. The words or pictures scroll from the right to the left, and after the last one scrolls off the screen, they start scrolling again.
If you're looking for something that would continue to display pictures in a rotation, you might want to try one of the slideshow scripts at http://www.dynamicdrive.com/dynamicindex14/index.html instead.

TooN
08-03-2007, 07:04 PM
Sorry for my bad description.
It trails on screen like it should, but when it starts to trail offscreen the first picture goes off alright but then the 2nd and 3rd just disappear instead of also trailing offscreen.
Hope thats better.

TooN
08-03-2007, 07:19 PM
Thanks Veronica.
That link you gave me is better than what i wanted.
Much easier to understand for me.
Once again thank you:)

Veronica
08-03-2007, 11:47 PM
If you still want to use the marquee, post a link to your site, because when I tried your code with some of my graphics, it seemed to work fine, ie the 2nd and 3rd pictures went off screen just like the first one. So maybe it was something else on the page causing an issue?