Results 1 to 3 of 3

Thread: problems with Cross browser Marquee script

  1. #1
    Join Date
    Aug 2009
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Talking problems with Cross browser Marquee script

    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)
    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>

  2. #2
    Join Date
    Aug 2009
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    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,

  3. #3
    Join Date
    May 2007
    Location
    Boston,ma
    Posts
    2,127
    Thanks
    173
    Thanked 207 Times in 205 Posts

    Default

    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]-->

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •