Foros del Web » Programando para Internet » Javascript »

el "+" no me concatena las cadenas ¿Por qué?

Estas en el tema de el "+" no me concatena las cadenas ¿Por qué? en el foro de Javascript en Foros del Web. Hola, estoy haciendo una galería dinamica de fotos. este es el codigo: Código PHP: <? var  img_vp =[ "foto1.jpg" , "foto2.jpg" , "foto3.jpg" ]; var  ...
  #1 (permalink)  
Antiguo 25/07/2007, 12:14
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
el "+" no me concatena las cadenas ¿Por qué?

Hola, estoy haciendo una galería dinamica de fotos.

este es el codigo:
Código PHP:
<?

var img_vp=["foto1.jpg","foto2.jpg","foto3.jpg"];
var 
img_cant=img_vp.length;

var 
temporal=0;

var 
dir="vp/imagenes/";
//Ruta al directorio de las imagenes

//esta funcion se ejecuta con el onload del body, pone la primer foto
function ini(){
    
document.getElementById('fotelis').style.backgroundImage="url(imagenes"img_vp[0] + ")";
}


//esta es la que hace el cambio de fotos
function cambiaf(b){
    if(
b==1){
        if((
window["temporal"]+1)==window["img_cant"]){
            
window["temporal"]=0;
        }
        else{
            
window["temporal"]++;
        }
    }
    else{
        if((
window["temporal"]-1)<0){
            
window["temporal"]=(window["img_cant"]-1);
        }
        else{
            
window["temporal"]--;
        }
        
    }
    var 
u=window["temporal"];
document.getElementById('fotelis').style.backgroundImage="url(vp/imagenes/"img_vp[u] + ")";
document.getElementById(ver).innerHTML="<font color=#FFFFFF>"+document.getElementById(fotelis).style.backgroundImage+"</font>";
}
?>
el problema es que me funcionaba perfecto igualando asi

.backgroundImage="url(vp/imagenes/" + img_vp[u] + ");" y no se que cambio hice o que paso que con la variable dir que contiene la ruta hasta el directorio imagenes, se concatena todo bien cuando hago

dir+img_vp[u]

pero no me pone la foto de fondo, no entiendo el problema. El tag de la celda es asi:

<td id='fotelis' style="background: url(imagenes) no-repeat center center">

le puse imagenes ahi como para ponerle algo, pero no se si funcionaría todo esto sin poner el style en el tag mismo.

luego hay otro td que es para ver como se asigna todo

<td id="ver">

la asignacion se hace perfecta pero no entiendo porque no funciona en firefox ni IE.


Esperando una ayuda, saludo Atte, Leonardo de Argentina


PD: Perdon por el titulo, es lo que pensaba pero luego mientras escribía el mensaje comprobe que no era la concatenacion el problema.
__________________
Dios es la unica fuente de todo bien.

Última edición por ASCENDEDMASTERS; 25/07/2007 a las 12:48
  #2 (permalink)  
Antiguo 25/07/2007, 19:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: el "+" no me concatena las cadenas ¿Por qué?

Hola:

Si la celda no tiene contenido, deberías asihnarle al menos la altura de la imágen que quieres mostrar (height: 100px) y tal vez debas controlar también la anchura.

Ante la duda, dale un borde para ver los tamaños.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 26/07/2007, 03:22
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: el "+" no me concatena las cadenas ¿Por qué?

Lo mejor que puedes hacer es alertar el
.style.backgroundImage
para ver si está correcto y existe la ruta.

Por comentarlo, ¿no se escribe más correctamente así?
style="background-image: url('imagen.jpg');"
¿o sólamente hay que poner comillas si el nombre del archivo contiene espacios en blanco?


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 26/07/2007, 03:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: el "+" no me concatena las cadenas ¿Por qué?

Cita:
Iniciado por derkenuke Ver Mensaje
Por comentarlo, ¿no se escribe más correctamente así?
style="background-image: url('imagen.jpg');"
¿o sólamente hay que poner comillas si el nombre del archivo contiene espacios en blanco?


Saludos.
Decididamente NO. No debe entrecomillarse lo que se pone dentro de los paréntesis, y si llevase blancos se puede usar el signo más (que suele poner php) o "%20 " (sin las comillas)... ante la duda siempre se puede obtener la cadena con la función escape()

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 26/07/2007, 08:58
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: el "+" no me concatena las cadenas ¿Por qué?

caricatos, dentro de la celda de la tabla esta puesto un gif transparente estirádo a 400x300 asique por ver la imagen no se hagan problema, debería verse perfectamente. Where is the problem?
__________________
Dios es la unica fuente de todo bien.
  #6 (permalink)  
Antiguo 26/07/2007, 10:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: el "+" no me concatena las cadenas ¿Por qué?

Hola:

Pues prueba temporalmente con un tag img... si se muestra o no, podrías desde las propiedades de la imagen (creo que todos los navegadores permiten verlas) podrías descubrir el problem

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 26/07/2007, 11:35
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: el "+" no me concatena las cadenas ¿Por qué?

nada caricatos, eso probe mira asi cambiando y poniendo esto:

<img name="foteli" src="imagen_inicio.jpg">

y luego cambie esto:


Código PHP:
document.getElementById('fotelis').style.backgroundImage="url(vp/imagenes/"img_vp[u] + ")"
por esto otro

Código PHP:
document.foteli.src=dire+img_vp[u]; 

y naranja, no funciona. que tengo mal?
__________________
Dios es la unica fuente de todo bien.
  #8 (permalink)  
Antiguo 26/07/2007, 18:00
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: el "+" no me concatena las cadenas ¿Por qué?

este codigo nose que tiene que no funciona en firefox ni IE (en IE me aparece el triangulito amarillo abajo a la izquierda, algo mal debe haber)

Código PHP:
var img_vp=["SaintGermain002.jpg","foto_horizontal_con_matriz.jpg"];
var 
img_cant=2;
var 
temporal=0;


var 
dir="vp/imagenes/";

function 
ini(){
    
document.getElementById('fotelis').style.backgroundImage="url(http://imagesforum.doctissimo.fr/mesimages/1676940/hola.gif);"
    
return;
}

function 
cambiaf(b){
    if(
b==1){
        if((
window["temporal"]+1)==window["img_cant"]){
            
window["temporal"]=0;
        }
        else{
            
window["temporal"]++;
        }
    }
    else{
        if((
window["temporal"]-1)<0){
            
window["temporal"]=(window["img_cant"]-1);
        }
        else{
            
window["temporal"]--;
        }
        
    }
    var 
u=window["temporal"];
    
//document.foteli.src=dir+img_vp[u];
    
document.getElementById('fotelis').style.backgroundImage="url("+dir+img_vp[u]+")";
    
document.getElementById("ver").innerHTML=document.foteli.src;
    


en firefox pone la foto al inicio la funcion ini cuando la carga el onload pero cuando apreto este boton

<input type="button" value="cambiar foto" onclick="cambiaf(1)"> no cambia nada, desaparece la foto pero no pone ningúna


, pero en IE naranja, no funciona nada de nada
__________________
Dios es la unica fuente de todo bien.
  #9 (permalink)  
Antiguo 26/07/2007, 20:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: el "+" no me concatena las cadenas ¿Por qué?

Hola:

Me parece que el error está en el código que no muestras... document.foteli.src no se vé, y donde aplicas el fondo es en fotelis (plural)...

por cierto, el cálculo que haces lo veo un poco complejo... prueba esta línea:

Código:
temporal = (temporal + b + img_vp.length) % img_vp.length;
El estilo del ini no debe terminar en punto y coma... hay un atributo src en fotelis, como si fuese un marco o una imagen...

Te paso un código que funciona:

Código:
<html>
<head>
<script>
var img_vp=["miemoticon.gif","tintero.gif","utensillos.gif"]; 
var img_cant=2; 
var temporal=0; 
var dir="../dibujos/"; 
function ini(){ 
    document.getElementById('fotelis').style.backgroundImage="url(http://imagesforum.doctissimo.fr/mesimages/1676940/hola.gif)" 
} 

function cambiaf(b){ 
temporal = (temporal + b + img_vp.length) % img_vp.length;
    document.getElementById('fotelis').style.backgroundImage="url("+dir+img_vp[temporal]+")"; 
    document.getElementById("ver").innerHTML = temporal; 
}  
window.onload=ini;
</script>
</head>
<body>
<input type="button" value="cambiar más" onclick="cambiaf(1)">
<input type="button" value="cambiar menos" onclick="cambiaf(-1)">

<div style="height: 150px; width: 150px; background-color: #eeeeee" id="fotelis" ></div>
<div id="ver" ></div>
</body>
</html>
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 26/07/2007, 21:40
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: el "+" no me concatena las cadenas ¿Por qué?

ya encontre cual era el problema. Tenia la ruta sin "/" al inicio, osea tenia "vp/imagenes" en lugar de "/vp/imagenes"

Gracias caricatos! y derkenuke! por ayudarme
__________________
Dios es la unica fuente de todo bien.
  #11 (permalink)  
Antiguo 26/07/2007, 22:57
Avatar de ASCENDEDMASTERS  
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: el "+" no me concatena las cadenas ¿Por qué?

ahora el tema es que tarda un poquito en poner la foto, como puedo hacer para poner algun gif particular para que indique la precarga de la foto?

otra cosa, puedo saber el porcentaje de la precarga para hacer una barrita y que cuando llegue al total la barrita, se muestre toda la foto? osea que el 100% es la barrita completa.
__________________
Dios es la unica fuente de todo bien.
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 18:38.