Acest JavaScript codul va muta un singur șir de text care conține orice text pe care îl alegeți printr-un spațiu marcaj orizontal, fără pauze. Face acest lucru prin adăugarea unei copii a șirului de text la începutul defilării de îndată ce dispare de la sfârșitul spațiului marcajului. Scriptul calculează automat câte copii ale conținutului de care are nevoie să creeze pentru a vă asigura că nu rămâneți niciodată fără text.
Aceasta include codul din exemplele mele, care adaugă două noi obiecte mq care conțin informații despre ce trebuie afișat în acele două mărci. Puteți șterge una dintre acestea și schimba cealaltă pentru a afișa o marcă continuă pe pagina dvs. sau repeta aceste declarații pentru a adăuga și mai multe mărci. Funcția mqRotate trebuie să fie numită trecând mqr după ce marcajele sunt definite ca acestea să se ocupe de rotații.
// Marcaj de text continuu
// copyright 30 septembrie 2009 prin Stephen Chapman
// http://javascript.about.com
// se acordă permisiunea de a utiliza acest Javascript pe pagina web
// cu condiția ca toate codurile de mai jos din acest script (inclusiv acestea
// comentarii) este utilizat fără nicio modificare
funcția objWidth (obj) {if (obj.offsetWidth) return obj.offsetWidth;
if (obj.clip) returnare obj.clip.width; return 0;} var mqr = []; funcţie
mq (id) {this.mqo = document.getElementById (id); var larg =
objWidth (this.mqo.getElementsByTagName ('span') [0]) + 5; var fulwid =
objWidth (this.mqo); var txt =
this.mqo.getElementsByTagName ( 'deschidere') [0] .innerHTML; this.mqo.innerHTML
= ''; var heit = this.mqo.style.height; this.mqo.onmouseout = function ()
{mqRotate (mqr);}; this.mqo.onmouseover = function ()
{clearTimeout (mqr [0] .TO);}; this.mqo.ary = []; var maxw =
Math.ceil (fulwid / wid) +1; for (var i = 0; i <
maxw; i ++) {this.mqo.ary [i] = document.createElement ( 'div');
this.mqo.ary [i] .innerHTML = txt; acest.mqo.ary [i] .style.position =
'absolut'; this.mqo.ary [i] .style.left = (wid * i) + 'px';
this.mqo.ary [i] .style.width = wid + 'px'; acest.mqo.ary [i] .style.height =
Heit; this.mqo.appendChild (this.mqo.ary [i]);} mqr.push (this.mqo);}
funcție mqRotate (mqr) {if (! mqr) return; for (var j = mqr.length - 1; j
> -1; j--) {maxa = mqr [j] .ary.length; for (var i = 0; imqr [j] .ary [i] .style; x.left = (parseInt (x.left, 10) -1) + 'px';} var y =
mqr [j] .ary [0] .style; if (parseInt (y.left, 10) + parseInt (y.width, 10) <0)
{var z = mqr [j] .ary.shift (); z.style.left = (parseInt (z.style.left) +
parseInt (z.style.width) * maxa) + 'px'; mqr [j] .ary.push (z);}}
mqr [0] .TO = setTimeout ('mqRotate (mqr)', 10);}
Conținutul textului propriu pentru panou se înscrie în div. Lățimea etichetei de întindere este ceea ce va fi utilizat ca lățime a fiecărei iterații a conținutului din casă (plus 5 pixeli doar pentru a le spaționa unul de celălalt).
În cele din urmă, asigurați-vă că codul dvs. JavaScript pentru a adăuga obiectul mq după încărcarea paginii conține valorile corecte.
Pentru a adăuga marcaje suplimentare, puteți configura divizii suplimentare în HTML, oferind fiecăruia propriul său conținut text într-un interval; configurați clase suplimentare dacă doriți să modelați diferitele mărci; și adăugați cât mai multe declarații mq () noi, cum aveți marcaje. Asigurați-vă că apelul mqRotate () îi urmează să opereze casetele pentru noi.