Foros del Web » Programando para Internet » Javascript »

Problemas con clear()

Estas en el tema de Problemas con clear() en el foro de Javascript en Foros del Web. Hola a todos, soy nuevo en esto del javascript y no se mucho, pero estoy intentando crear unas cosillas para mi página web y tengo ...
  #1 (permalink)  
Antiguo 14/06/2003, 09:49
 
Fecha de Ingreso: junio-2003
Mensajes: 4
Antigüedad: 21 años, 7 meses
Puntos: 0
Problemas con clear()

Hola a todos, soy nuevo en esto del javascript y no se mucho, pero estoy intentando crear unas cosillas para mi página web y tengo un problema.

Paso a explicarlo lo mas claro posible para ke me entendais...

En primer lugar, lo que trato de hacer es ke nada mas cargue la paguina se escriba un texto como si se escribiera a traves de una makina de escribir... bueno, pues eso lo tengo conseguido...

Y ahora es cuando viene mi problema... El texto ke yo kiero ke aparezca contiene varias lineas, pero kiero ke cuando una linea se termine de escribir, se borre automaticamente y comience a escribirse la siguiente...

He probado con document.close("") pero no me funciona. He probado incluyendola dentro de la directiva <script> de la primera linea y nada, he probado incluyendola dentro de otro <script> pero tampoco... y ya no se como hacerlo...

Alguien me puede ayudar??? GRACIAS!!!

Mi e-mail es [email protected]
  #2 (permalink)  
Antiguo 14/06/2003, 10:34
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Hola Neosito, bienvenido al foro.

No sé muy bien cómo hacer el efecto máquina de escribir, pero he hecho algo que a lo mejor te puede orientar.

Código:
<html>
<head>
<script language="JavaScript">
var texto=new Array();
texto[1]="La primera línea es esta";
texto[2]="Ahora la segunda";
texto[3]="Después la tercera";
texto[4]="Y finalmente la cuarta";
var i = 1;
function escribe(){
document.getElementById("campo").innerHTML=texto[i]
if(i<4){
i+=1;
setTimeout('escribe()',2000);
}
}
</script>
</head>

<body onLoad="escribe()">
<div id="campo"></div>

</body>
</html>
A ver qué te parece.

De todas formas seguro que pronto de te dan una solución muchísimo más completa y eficaz. En estos foros hay verdaderos monstruos del Javascript.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 15/06/2003, 17:50
 
Fecha de Ingreso: junio-2003
Mensajes: 4
Antigüedad: 21 años, 7 meses
Puntos: 0
Muchas gracias por contestarme, realmente me ha servido lo ke tu me has dado, pero solo una pregunta mas... sabrias como poner un cursor parpadeante tipo _ al final del texto?
Muchas gracias.


Solo una ultima cosa, lo he encontrado por ahi, por separado, pero no se como unirlo, si te lo mando por aki sabrias unirmelo? (con separado me refiero el texto escrito a maquina linea a linea y el cursor al final del texto). Gracias nuevamente...
  #4 (permalink)  
Antiguo 16/06/2003, 03:48
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Bueno, este es un método poco ortodoxo (supongo) para que el cursor parpadeé, pero resulta.
Código:
<html>
<head>
<script language="JavaScript">
ver=1;
function parpadeo(){
	if(ver>0)
	{document.getElementById("cursor").style.visibility='hidden';}
	else
	{document.getElementById("cursor").style.visibility='visible';}
	ver=ver*(-1);
	setTimeout('parpadeo()',500)
}
</script>
</head>

<body onLoad="parpadeo()">
<div id="cursor">_</div>
</body>
</html>
Si quieres hacer que parpadeé más rápido disminuye el número que está en rojo, y más lento, pues lo aumentas.

Sobre lo de que me mandes el código,.... podemos probar. Lo que si que no sé es cuando te voy a poder responder, ya que ahora estoy de exámenes y ando un poco liado. Puede que alguien se anime a entrar en la conversación y nos ayude.

Por cierto, si no me equivoco, estás intentando hacer algo parecido a lo que le pasa al ordenador de Neo en The Matrix. Si es así, creo que hay por ahí un código de Javascript que hace lo mismo. Si me acuerdo dónde lo he visto te lo pongo, pero puedes usar un buscador para encontrarlo tú mismo.

Un saludo.

Aquí está el efecto Matrix
http://javascript.internet.com/bgeffects/matrix.html
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #5 (permalink)  
Antiguo 16/06/2003, 05:19
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 1 mes
Puntos: 61
Basándome en el código de bravenap (hola!!!) propongo las siguientes modificaciones del mismo. ¿Objetivo? ninguno, pero uno siempre busca picar la menor cantidad posible de código.

Código:
<html>
<head>
<script language="JavaScript">
ver=1;
function parpadeo(){
document.getElementById("cursor").style.visibility=(document.getElementById("cursor").style.visibility=='hidden')?'visible':'hidden';}

</script>
</head>

<body onLoad="setInterval('parpadeo()',500)">
<div id="cursor">_</div>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 16/06/2003, 07:48
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Hola Karlankas
Como ya te he dicho antes, cada día se aprende algo nuevo.
Bueno, me he entretenido un ratito (sí, ya sé que tenía que estudiar pero es que...) y he hecho esto .

A ver qué os parece.

Un saludo a los dos.

**un ratín después**

Bueno, he hecho algunas modificaciones del ejemplo anterior.
http://personales.ya.com/pyrus/despierta.htm
Todo va bien hasta que ocurre algo extraño en la última línea.
Es como si no reconociese el caracter "<" que antes sí lo hacía.

¿'aonde estaral fayu?

Por cierto. ¿cómo se ponía una pausa sin llamar a una función? He probado con setTimeout('',2000) y setTimeout(2000) pero parece que no funcionaba. Por eso he tenido que liar un poco el código.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 16/06/2003 a las 07:51
  #7 (permalink)  
Antiguo 16/06/2003, 08:22
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
jé qué chulo

Oye, es verdad los del < cómo me ha mareado!

Bueno, he logrado que salga el caracter agregando esta línea

function maquina(){
if(i<texto[frase].length){
cadena=texto[frase].charAt(i);
if(cadena == "<"){cadena="&lt;"}
document.getElementById("contenido").innerHTML+=ca dena;
i+=1
setTimeout('maquina()',100)
}
else{
frase+=1;
i=0;
document.getElementById("contenido").innerHTML="";
escribe();
}
}
...y parece que así lo muestra
  #8 (permalink)  
Antiguo 16/06/2003, 08:58
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Bien, después de la aclaración de tunait, he conseguido entender por qué no me funcionaba. La verdad (lo siento tuni) es que no me ha dado la respuesta si no que he caído al ver que ya salía el dichoso caracter de apertura de etiqueta.

Lo que pasaba es que antes escribía la frase entera de una sola vez y no letra por letra, por lo que se reconocían las etiquetas y el navegador las interpretaba. Al escribir letra por letra, el primer caracter que se escribía era "<" pero era como si se quedara una etiqueta abierta, sin cerrar, y el navegador no la reconocía. Por eso no era sólo la primera sino la apertura de varias etiquetas dentro de la frase.

Ahora lo que hago es, una vez terminado de escribir lo reescribo añadiendo el enlace, es decir, las etiquetas correspondientes.

http://personales.ya.com/pyrus/despierta.htm

Un saludo.

Se me olvidaba, si me decís cómo hacer esa pausa que mencionaba antes podré hacer que aguante un poco más la frase al terminar de escribirse.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #9 (permalink)  
Antiguo 16/06/2003, 09:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Ah, pos yo estuve jugando también (con tu permiso) para que quede como enlace directamente, solo que mientras se escribe y al final la última frase se queda quieta pará (en negritas lo alterado o añadido)

<script language="JavaScript">

var texto=new Array();
texto[1]="Despierta, Neosito.";
texto[2]="Foros del Web te posee.";
texto[3]="Sigue el enlace blanco.";
texto[4]="Toc, Toc, Neosito.";
texto[5]="http://www.forosdelweb.com";
enla = '<a href="http://www.forosdelweb.com"><font face="Arial" color="#FFFFFF">'
enlb = "</font></a>"

i=0;
ver=1;
frase=1;
cadenab=""

function parpadeo(){
document.getElementById("cursor").style.visibility =(document.getElementById("cursor").style.visibili ty=='hidden')?'visible':'hidden';
}
function escribe(){
if (frase<texto.length){maquina();}
}
function maquina(){
if(i<texto[frase].length){
cadena=texto[frase].charAt(i);
if(frase == texto.length-1)
{
cadenab+=cadena
document.getElementById("contenido").innerHTML=enl a + cadenab + enlb
i+=1
}
else{

document.getElementById("contenido").innerHTML+=ca dena;
i+=1}
setTimeout('maquina()',100)
}
else{
frase+=1;
i=0;
if(frase < 5)
{
document.getElementById("contenido").innerHTML="";}
escribe();}

}
</script>

Última edición por tunait; 16/06/2003 a las 09:25
  #10 (permalink)  
Antiguo 16/06/2003, 09:32
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 2 meses
Puntos: 4
Según voy a publicar que ya he resuelto lo de la pausa (no me gusta mucho pero funciona) veo que tunait ha puesto un megacódigo.

Voy a probarlo en seguida.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.