PDA

View Full Version : problems with Cross browser Marquee script



ntcase
08-15-2009, 05:29 PM
1) Script Title: Cross browser Marquee script

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

3) Describe problem:

hello,
after changing the orientation of the text to show from right to left and fixing the long scrollbar that stretches due to the -9000px padding to the left,
ive encoutered a new problem,

on ie 7 with the -9000 it doesnt work good, when removing it works but then i get on long setences a new not so big horizontal scrollbar on firefox3 and ie8

if i use the -9000 on ie8 and ff3 it shows fine but on ie7 i got a long long horizontal scrollbar that does allot of problems to my other scripts


my new script is : (dont mind the php 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="272px"
//Specify the marquee's height
var marqueeheight="20px"
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=2
//configure background color:
var marqueebgcolor="#ffffff"
//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><font id=\'news_tracker\'><?php $type = 'news';

// retrieve data from db

$sqlquery = mysql_query("Select * from news LIMIT 1;");
$entrydata = mysql_fetch_array($sqlquery) or die(mysql_error());


echo addslashes(htmlspecialchars_decode($entrydata['txt_html']));

?></font></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" dir=ltr style="visibility:hidden;position:absolute;top:-0px;right:-0px; overflow:hidden;">'+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.right=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.right=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.right)>(actualwidth*(-1)+8))
cross_marquee.style.right=parseInt(cross_marquee.style.right)-copyspeed+"px"
else
cross_marquee.style.right=parseInt(marqueewidth)+8+"px"

}
else if (document.layers){
if (ns_marquee.right>(actualwidth*(-1)+8))
ns_marquee.right-=copyspeed
else
ns_marquee.right=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+';overflow:hidden;background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div dir=ltr 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" right=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>

ntcase
08-16-2009, 12:33 PM
well,
if someone could please help me with this,
i dont mind even if you could suggest another way of tweaking this script to work from left to right (and not in right to left)

thank you,

bluewalrus
08-16-2009, 03:44 PM
So put whatever works for just ie7 in a conditional statement. http://www.quirksmode.org/css/condcom.html

<!--[if IE 7]>
According to the conditional comment this is Internet Explorer 7<br />
<![endif]-->