Foros del Web » Programando para Internet » Javascript »

Cambiar imagen y cambiar comentario de la misma

Estas en el tema de Cambiar imagen y cambiar comentario de la misma en el foro de Javascript en Foros del Web. Muy buenas a todos, despues de leer muchos mensajes he conseguido hacer un pequeño visor de imagenes que según pincho en el boton siguiente va ...
  #1 (permalink)  
Antiguo 27/06/2005, 13:01
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Pregunta Cambiar imagen y cambiar comentario de la misma

Muy buenas a todos, despues de leer muchos mensajes he conseguido hacer un pequeño visor de imagenes que según pincho en el boton siguiente va cambiando una imagen. Lo he hecho con un array de imagenes. Me gustaría tambien tener un array con comentarios y que a la vez que actualiza la imagen se modificara este comentario si alguien pode decirme como lo tengo que hacer o pasarme el codigo.

Pongo el codigo que tengo de momento:
Muchas gracias a todos.

<html>
<head>
<title>Foto de la semana</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
var img_actual=1
var img_max=5

function siguiente(img) {
if(img_actual < img_max)
{
img_actual=img_actual+1
img.src="imagenes2/foto_semana_" + img_actual + ".jpg"

}
else
{
window.alert("No hay más fotos para mostrar.")
}
}

function anterior(img) {
if(img_actual > 1)
{
img_actual=img_actual-1
img.src="imagenes2/foto_semana_" + img_actual + ".jpg"
}
else
{
window.alert("ya es la primera")
}
}
</script>
</head>

<body bgcolor="#000000">
<a name="actual"></a>
<table width="600" border="0" align="center">
<tr>
<td align="center" valign="middle">
<INPUT id="atras" type="button" value="<<" onclick="return anterior(foto)" NAME="atras"></td>
<td width="454" align="center" valign="middle"><font color="#FFFFFF">

</font></td>
<td width="80" align="center" valign="middle"><INPUT id="adelante" type="button" value=">>" onclick="return siguiente(foto)" NAME="adelante"></td>
</tr>

</table>
</body>
</html>

Última edición por guripa; 27/06/2005 a las 18:11
  #2 (permalink)  
Antiguo 27/06/2005, 15:14
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Veo que es complicado

Porlo que veo es bastante complicado ya que nadie dice nada
  #3 (permalink)  
Antiguo 28/06/2005, 02:05
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Puedes poner bajo el lugar donde se muestran las imágenes un contenedor de id comentariosFoto

<div id="comentariosFoto"></div>

agrega un array con los comentarios al js

var comentarios = new Array('comentario1','comentario2','etc')

y bajo las líneas en el script que cambian las imágenes agrega otra para los comentarios. suponiendo que la variable que usas img_actual guarde un valor numérico...

document.GetElementById('comentariosFoto').innerHT ML= comentarios[img_actual]

Eso sí, debes considerar que en los arrays se empiezan a contar posiciones desde 0. comentarios[0] devolverá comentario1. Vigila que coincidan las posiciones de los comentarios con las posiciones de las imágenes (dices que las tiene guardadas también en un array, aunque no lo he visto en el código)
  #4 (permalink)  
Antiguo 28/06/2005, 02:55
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Voy a probarlo a ver si consigo que funcione. Tienes razón, no tengo un array con las imagenes, lo que hago es como todas se llaman igual voy incrementando el numero hasta llegar al numero máximo.

Ya te cuento si soy capaz de que me funciones.
Muchas gracias por tu ayuda.
  #5 (permalink)  
Antiguo 28/06/2005, 03:19
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Muchas de nadas yá nos contarás
  #6 (permalink)  
Antiguo 28/06/2005, 10:30
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Sigo sin conseguirlo

No me sale, no se que hago mal, soy un torpe de sale humo de la cabeza.
  #7 (permalink)  
Antiguo 28/06/2005, 10:30
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Sigo sin conseguirlo

No me sale, no se que hago mal, soy un torpe me sale humo de la cabeza.
  #8 (permalink)  
Antiguo 28/06/2005, 10:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Eso nos pasa a todos, no desesperes...

déjanos el código que llevas hecho a ver si lo afinamos
  #9 (permalink)  
Antiguo 28/06/2005, 10:43
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Pues este es el codigo. La verdad tunait no se donde tengo que poner lo que me has dicho:

<html>
<head>
<title>Foto de la semana</title>
<script language="JavaScript">
var img_actual=13
var img_max=13
var comentarios = new Array("1","2","3","4","5","6","7","8","9","10","11 ","12","13")

function siguiente(img) {
if(img_actual < img_max)
{
img_actual=img_actual+1
img.src="imagenes2/foto_semana_" + img_actual + ".jpg"

}
else
{
window.alert("No hay más fotos para mostrar.")
}
}

function anterior(img) {
if(img_actual > 1)
{
img_actual=img_actual-1
img.src="imagenes2/foto_semana_" + img_actual + ".jpg"
}
else
{
window.alert("ya es la primera")
}
}
</script>
</head>
<body>
<table width="600" border="0" align="center">
<tr>
<td align="center" valign="middle"> <INPUT id="atras" type="button" value="<<" onclick="return anterior(foto)" NAME="atras"></td>
<td width="454" align="center" valign="middle"><font color="#FFFFFF">&nbsp;
</font></td>
<td width="80" align="center" valign="middle"><INPUT id="adelante" type="button" value=">>" onclick="return siguiente(foto)" NAME="adelante"></td>
</tr>
<tr>
<td colspan="3" align="center" valign="middle"><img id="foto" src="imagenes2/foto_semana_13.jpg" width="600" height="450"></td>
</tr>
<tr>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"> <font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"><div id="comentariosFoto"></div>
</font></td>
</tr>
</table>
</body>
</html>
  #10 (permalink)  
Antiguo 28/06/2005, 11:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Prueba a ver ahora qué dice

Código:
<html>
<head>
<title>Foto de la semana</title>
<script  language="JavaScript">
var img_actual=13
var img_max=13
var comentarios = new Array("0","1","2","3","4","5","6","7","8","9","10","11","12","13")

function siguiente() {
if(img_actual < img_max)
   {
   img_actual=img_actual+1 //esto lo puedes resumir en img_actual++
   document.getElementById('foto').src="imagenes2/foto_semana_" + img_actual + ".jpg"
    document.getElementById('comentariosFoto').innerHTML= comentarios[img_actual]

   }
else
   {
	window.alert("No hay más fotos para mostrar.")
   }   
}

function anterior() {
   if(img_actual > 1)
   {
     img_actual=img_actual-1 //esto lo puedes abreviar como img_actual--
     document.getElementById('foto').src="imagenes2/foto_semana_" + img_actual + ".jpg"
     document.getElementById('comentariosFoto').innerHTML= comentarios[img_actual]
   }
   else
   {
	window.alert("ya es la primera")
   }
}
</script>
</head>
<body>
<table width="600" border="0" align="center">
  <tr> 
    <td align="center" valign="middle"> <INPUT id="atras" type="button" value="<<" onclick="anterior()" NAME="atras"></td>
    <td width="454" align="center" valign="middle"><font color="#FFFFFF">&nbsp; 
      </font></td>
    <td width="80" align="center" valign="middle"><INPUT id="adelante" type="button" value=">>" onclick="siguiente()" NAME="adelante"></td>
  </tr>
  <tr> 
    <td colspan="3" align="center" valign="middle"><img id="foto" src="imagenes2/foto_semana_13.jpg" width="600" height="450"></td>
  </tr>
  <tr> 
    <td align="center" valign="middle"></td>
    <td align="center" valign="middle"> <font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif"><div id="comentariosFoto"></div>
      </font></td>
   </tr>
  </table>
</body>
</html>
Vigila que innerHTML lo tengas todo junto (al enviar el mensaje lo separa y lo deja así inner HTML)
  #11 (permalink)  
Antiguo 28/06/2005, 11:27
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Lo he copiado tal cual y no me funciona, el I.explorer da un error. en la linea 40, car.1 Error: Se esperaba un objeto codigo:0

La linea 40 es la del INPUT.
  #12 (permalink)  
Antiguo 28/06/2005, 11:33
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Pues acabo de probarlo y va bien

te acordaste de vigilar tener todo junto innerHTML??

sólo he tenido que unirlo y ha funcionado a la primera
  #13 (permalink)  
Antiguo 28/06/2005, 11:48
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Pues no se lo que pasaba, seguro que he tocado algo y me lo he cargado. Lo he vuelto a copiar y ahora funciona bien. Lo único que cuando carga no sale el texto de la foto 13 pero si doy hacia atras y luego hacia adelante ya si que sale.

Otra cosa, puedo hacer que en la línea:

<img id="foto" src="imagenes2/foto_semana_13.jpg" width="600" height="450">

en lugar de que me cargue la foto_semana_13.jpg me cargue la foto img_actual así cuando tenga mas fotos solo tengo que cambiar la variable global img_actual

Oye, muchas gracias por tu rapidez te estoy dando la tarde.
  #14 (permalink)  
Antiguo 28/06/2005, 12:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por guripa
Lo único que cuando carga no sale el texto de la foto 13 pero si doy hacia atras y luego hacia adelante ya si que sale.
Claro, la imagen la carga el tag html de img, no el script que no comienza a poner comentarios hasta llamar a alguna de las funciones

Cita:
Otra cosa, puedo hacer que en la línea:

<img id="foto" src="imagenes2/foto_semana_13.jpg" width="600" height="450">

en lugar de que me cargue la foto_semana_13.jpg me cargue la foto img_actual así cuando tenga mas fotos solo tengo que cambiar la variable global img_actual
Claro, pone esto debajo de esa línea
Código:
<script type="text/javascript">
<!--
document.getElementById('foto').src="imagenes2/foto_semana_" + img_actual + ".jpg"
document.getElementById('comentariosFoto' ).innerHTML= comentarios[img_actual]
//-->
</script>
Yá me contarás
  #15 (permalink)  
Antiguo 28/06/2005, 13:39
Avatar de guripa  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 33
Antigüedad: 21 años, 2 meses
Puntos: 0
Ya me carga la última foto pero la segunda linea del scrip que me has puesto da error, creo que esta línea es para que coja el comentario al cargar la página. El I.explorer pone:

'document.getElementById(...)' es nulo o no es un objeto

Última pregunta, ¿se puede hacer un salto de linea dentro del array de comentarios?

Oye, de nuevo muchas, muchas, gracias.
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 09:31.