• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

CiberSkull

O meu script em Firefox e IE

8 mensagens neste tópico

Hi,

Da ultima vez que aqui estive, não sabia como como ir buscar o texto de uns elementos.

Agora, sim porque as duvidas nunca acabam, quero por o que retirei noutro sitio.

A ideia geral é fazer um Type Writer.

No FF e Chrome funciona bem, no IE apenas escreve Undefined... o código:

Deve escrever aqui:

<div class="div_typescroller" id="div_typescroller">
</div>

Vai buscar o Conteúdo aqui:

<div id="typescroller_content" style="display:none;">

<P>Heeeeellllllllllloooooooo</P>
<P>I'm ALIVE!</P>

</div

O Codigo que poe e vai buscar é este:

<script type="text/javascript">
var arr = new Array();
var lines;
var line = new Array();
var cursor = "-";
var temp = new Array();
var curr_line=0;
var curr_char = 0;
function next(){
if (cursor=="\\"){
	cursor="|"}
else if (cursor=="|"){
	cursor="/"}
else if (cursor=="/"){
	cursor="-"}
else if (cursor=="-"){
	cursor="\\"}

if(temp==line[curr_line]) {
	temp="";
	if(++curr_line==lines)
		curr_line=0;
	curr_char=0;
	setTimeout("animate()", 1000);
}
else {
	curr_char++;

	setTimeout("animate()", 100);
}
}

function animate(){

temp+=""+line[curr_line][curr_char];

$("#div_typescroller").html(temp + cursor);

next();
};     

$(document).ready(function(){

          var htmlstr;
          

          $('#typescroller_content P').each(function (i) {
             arr[i] = $(this).text();
          });


            var newhtml;
          var i ;
          var k =  arr.length;
          var j = 0;
          for(i = 0 ; i<k;i++) {
              // alert(j);
               if(arr[i].toString() !=" " && arr[i].toString().length >0)
                    line[j++]=arr[i];


            }
            lines=j;
          
            animate();
});
</script>

Em vez de usar uma div também tentei usar:

<form name="typescroller">
<input border="0" type="text" id="div_typescroller" size="30">
</form>

adaptando o código:

<script type="text/javascript">

var arr = new Array();
var lines;
var line = new Array();
var cursor = "-";
var temp = new Array();
var curr_line=0;
var curr_char = 0;
function next(){
if (cursor=="\\"){
	cursor="|"}
else if (cursor=="|"){
	cursor="/"}
else if (cursor=="/"){
	cursor="-"}
else if (cursor=="-"){
	cursor="\\"}

if(temp==line[curr_line]) {
	temp="";
	if(++curr_line==lines)
		curr_line=0;
	curr_char=0;
	setTimeout("animate()", 1000);
}
else {
	curr_char++;

	setTimeout("animate()", 100);
}
}

function animate(){

temp+=""+line[curr_line][curr_char];

$("#div_typescroller").val(temp + cursor);

next();
};     

$(document).ready(function(){

          var htmlstr;
          

          $('#typescroller_content P').each(function (i) {
             arr[i] = $(this).text();
          });


            var newhtml;
          var i ;
          var k =  arr.length;
          var j = 0;
          for(i = 0 ; i<k;i++) {
              // alert(j);
               if(arr[i].toString() !=" " && arr[i].toString().length >0)
                    line[j++]=arr[i];


            }
            lines=j;
          
            animate();
});

</script>

caso tenha que usar o input como é ponho a parecer invisivel (a border)?

Agradeço desde já a vossa ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O bug não sei. O link que puseste nao funciona e não faço ideia do que queres fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

parece estar down..-

aqui vai outro:

http://javascripts.vbarsan.com/

é  o Typewriter Vertical Scroller

estive a tenta usar o debbuger do ie e esta tudo em as variaveis estao bem, os indices tambem.

mas qdo faz:

temp+=""+line[curr_line][curr_char];

temp fica com "undefined"

não percebo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hey,

Já descobri o erro. Estava a tratar a string como faria  em C/C++/D devia ser:

temp+=""+line[curr_line].charAt(curr_char);

Estranho o FF e chrome assumirem como correcto e o IE não..

Obrigado e tudo de bom.

Miguel Rossi Seabra

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tem atenção quando colocas "Jquery" no tópico quando deveria ser "o meu javascript".

Acho que deverias rever um pouco a lógica de programação que fazes, estou a ver algumas coisas que poderias fazer usando a framework jquery e estás a usar os métodos do engine do javascript

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora