Бегающая строка(Upgraded)
/* Библиотека MonsterScript - MS Методы: MS.textMove(elementId,text,phase,speed) { elementId - Id элемента на который вешается эффект text - текст который будет бегать, если передаётся массив, то текст каждого элемента будет выведен по очереди phase - если true, то текст будет бегать в цикле вперед и назад,false - текст будет бежать до конца и остановится(по умолчанию - false) speed - необязательный параметр - по умолчанию 140 скорость } */ MS = { start: 0, end: 0, text: 'lol', currentText: '', id: 'lol', step: 0, status: false, phase: false, forward: function(el,speed) { el.innerHTML = this.text.slice(this.start,this.end); this.end++; if(this.end >= this.text.length + 1) { clearInterval(this.status); //alert('Interval Stoped'); //alert(this.phase) if(this.phase == true) { this.status = setInterval(function(){MS.backward(el,speed)},speed); } } }, backward: function(el,speed) { this.end--; el.innerHTML = this.text.slice(this.start,this.end); if(this.end <= 0) { clearInterval(this.status); //alert('finish') //alert(this.end) this.textMove(this.id,this.text,speed); } }, textMove: function(id,text,speed,phase) { if(typeof phase == 'boolean') this.phase = phase; if(!speed || isNaN(speed)) speed = 140; //alert(this.currentText.join) if(this.currentText.join == undefined) { this.currentText = text; this.text = this.currentText; //alert(this.currentText[1]) } //alert(this.currentText.length) if(this.currentText.join != undefined && this.phase == true) { while(this.step < text.length) { //alert(this.step) this.text = this.currentText[this.step]; this.step++; if(this.step == this.currentText.length) this.step = 0; break; } } else { //alert(this.currentText.join("--")); if(!text) this.text = 'Текст по умолчанию'; //Если нужно чтобы элементы массива целиком добавлялись //Вместо букафки, то убираем toString(); // в случае указания параметра false, и добавиви массив в текст // то тут можно вместо запятой добавить желаемый значёк try { this.text = this.currentText.join(', ').toString(); } catch(e) { this.text = this.currentText.toString(); } } if(!id) return alert('Укажите элемент в котором будет бегать строка!'); if(!document.getElementById(id)) return alert('Элемент с таким id ненайден'); this.id = id; var el = document.getElementById(this.id); this.status = setInterval(function(){MS.forward(el,speed)},speed); } } можно добавлять текст простой или массив слов, если true - то текст будет набиратся и удалятся аналогично, + можно ставить скорость, в случае если false, то массив слов выводится сразу, оставляя пробел после запятой), для удобства, вообщем удобненкая весч) |
а чем это отличается от <marquee> где есть всё тоже самое?
|
ну здесь по букавке набирается, а там сразу весь текст выходит, + можно массив слов кинуть))) как-бы разновидность)..
+ кроме того текст в таком же порядке удаляется при желании и опять возвращается а вы огромный текст напишите в маленьком диве размером 200х200, и так чтобы он сверху вниз печатался...этот тег несможет с этим справится + помимо этого Этот тег не входит в спецификацию HTML и его наличие приведет к невалидному коду. так что имейте ввиду |
демо сделайте :)
try { this.text = this.currentText.join(', ').toString(); } catch(e) { this.text = this.currentText.toString(); } это вы так строку от массива отличаете ? какой ужас |
эмм а как тут демо делать?)
насчёт различия, да другой способ в голову не пришёл :) |
Часовой пояс GMT +3, время: 08:20. |