Search code examples
marquee

Move text continuously?


I'm making a news-box or whatever it's called :P

The thing is I need to move the text up continuously, In Google I found the "marquee" HTML but I'm not sure this is the best way to do what I want.

What's the best option ??


Solution

  • Well, I found this code. I think it's too much for what it does, but it works !!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
    <head>
      <title></title>
    <style type="text/css">
    
    .container{
    position: relative;
    width: 200px; /*marquee width */
    height: 200px; /*marquee height */
    overflow: hidden;
    background-color: white;
    border: 3px solid orange;
    padding: 2px;
    padding-left: 4px;
    }
    
    </style>
    
    <script type="text/javascript">
    
    /***********************************************
    * Simple Marquee (04-October-2012)
    * by Vic Phillips - http://www.vicsjavascripts.org.uk/
    ***********************************************/
    
    var zxcMarquee={
    
     init:function(o){
      var mde=o.Mode,mde=typeof(mde)=='string'&&mde.charAt(0).toUpperCase()=='H'?['left','offsetWidth','top','width']:['top','offsetHeight','left','height'],id=o.ID,srt=o.StartDelay,ud=o.StartDirection,p=document.getElementById(id),obj=p.getElementsByTagName('DIV')[0],sz=obj[mde[1]],clone;
      p.style.overflow='hidden';
      obj.style.position='absolute';
      obj.style[mde[0]]='0px';
      obj.style[mde[3]]=sz+'px';
      clone=obj.cloneNode(true);
      clone.style[mde[0]]=sz+'px';
      clone.style[mde[2]]='0px';
      obj.appendChild(clone);
      o=this['zxc'+id]={
       obj:obj,
       mde:mde[0],
       sz:sz
      }
      if (typeof(srt)=='number'){
       o.dly=setTimeout(function(){ zxcMarquee.scroll(id,typeof(ud)=='number'?ud:-1); },srt);
      }
      else {
       this.scroll(id,0)
      }
     },
    
     scroll:function(id,ud){
      var oop=this,o=this['zxc'+id],p;
      if (o){
       ud=typeof(ud)=='number'?ud:0;
       clearTimeout(o.dly);
       p=parseInt(o.obj.style[o.mde])+ud;
       if ((ud>0&&p>0)||(ud<0&&p<-o.sz)){
        p+=o.sz*(ud>0?-1:1);
       }
       o.obj.style[o.mde]=p+'px';
       o.dly=setTimeout(function(){ oop.scroll(id,ud); },50);
      }
     }
    }
    
    function init(){
    
     zxcMarquee.init({
      ID:'marquee1',     // the unique ID name of the parent DIV.                        (string)
      Mode:'Vertical',   //(optional) the mode of execution, 'Vertical' or 'Horizontal'. (string, default = 'Vertical')
      StartDelay:2000,   //(optional) the auto start delay in milli seconds'.            (number, default = no auto start)
      StartDirection:-1  //(optional) the auto start scroll direction'.                  (number, default = -1)
     });
    
     zxcMarquee.init({
      ID:'marquee2',     // the unique ID name of the parent DIV.                        (string)
      Mode:'Horizontal', //(optional) the mode of execution, 'Vertical' or 'Horizontal'. (string, default = 'Vertical')
      StartDelay:2000,   //(optional) the auto start delay in milli seconds'.            (number, default = no auto start)
      StartDirection:-1  //(optional) the auto start scroll direction'.                  (number, default = -1)
     });
    
    }
    
    if (window.addEventListener)
     window.addEventListener("load", init, false)
    else if (window.attachEvent)
     window.attachEvent("onload", init)
    else if (document.getElementById)
     window.onload=init
    
    
    </script></head>
    
    <body>
    <div id="marquee1" class="container" onmouseover="zxcMarquee.scroll('marquee1',0);" onmouseout="zxcMarquee.scroll('marquee1',-1);">
    <div style="position: absolute; width: 98%;">
    
    <p style="margin-top: 0"><b><a href="http://www.dynamicdrive.com/dynamicindex17/indexb.html">Iframe &amp;
    Ajax category added</a></b><br>
    The Dynamic Content category has just been branched out with a new
    <a href="http://www.dynamicdrive.com/dynamicindex17/indexb.html">sub category</a>
    to better organize its scripts.</p>
    <p><b><a href="http://tools.dynamicdrive.com/gradient/">Gradient Image Maker</a></b><br>
    We're excited to introduce our latest web tool- Gradient Image Maker!</p>
    
    <p><b><a href="http://www.dynamicdrive.com/forums/">DD Help Forum</a></b><br>
    Check out our new forums for help on our scripts and coding in general.</p>
    <p align="left"><b><a href="http://www.dynamicdrive.com/notice.htm">Terms of
    Usage update</a></b><br>
    Please review our updated usage terms regarding putting our scripts in an
    external .js file. </p>
    
    </div>
    </div>
    
    
    <div id="marquee2" class="container" onmouseover="zxcMarquee.scroll('marquee2',0);" onmouseout="zxcMarquee.scroll('marquee2',-1);">
    <div style="position: absolute; width: 98%;">
    
    <p style="margin-top: 0"><b><a href="http://www.dynamicdrive.com/dynamicindex17/indexb.html">Iframe &amp;
    Ajax category added</a></b><br>
    The Dynamic Content category has just been branched out with a new
    <a href="http://www.dynamicdrive.com/dynamicindex17/indexb.html">sub category</a>
    to better organize its scripts.</p>
    <p><b><a href="http://tools.dynamicdrive.com/gradient/">Gradient Image Maker</a></b><br>
    We're excited to introduce our latest web tool- Gradient Image Maker!</p>
    
    <p><b><a href="http://www.dynamicdrive.com/forums/">DD Help Forum</a></b><br>
    Check out our new forums for help on our scripts and coding in general.</p>
    <p align="left"><b><a href="http://www.dynamicdrive.com/notice.htm">Terms of
    Usage update</a></b><br>
    Please review our updated usage terms regarding putting our scripts in an
    external .js file. </p>
    
    </div>
    </div>
    </body>
    
    </html>