Foros del Web » Programando para Internet » Javascript »

Rotar imagenes

Estas en el tema de Rotar imagenes en el foro de Javascript en Foros del Web. Hola a todos, tento un codigo para mostrar imagenes, que funciona correctamente pero me gustaría que me rotara las imagenes de forma aleatoria, de forma ...
  #1 (permalink)  
Antiguo 21/05/2009, 13:18
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 1 mes
Puntos: 0
Rotar imagenes

Hola a todos,

tento un codigo para mostrar imagenes, que funciona correctamente pero me gustaría que me rotara las imagenes de forma aleatoria, de forma que no salieran siempre en el mismo orden.

Os pongo el codigo:
<script language='JavaScript1.2'>
var dropimages=new Array()
// CONFIGURA LOS NOMBRES DE LAS IMÁGENES. Puedes agregar o restar imágenes si es necesario
dropimages[0]="image1.JPG"
dropimages[0].height=680
dropimages[0].width=472
dropimages[1]="image2.JPG"
dropimages[1].height=680
dropimages[1].width=472
dropimages[2]="image3.JPG"
dropimages[2].height=680
dropimages[2].width=472
dropimages[3]="image4.JPG"
dropimages[3].height=680
dropimages[3].width=472
dropimages[4]="image5.JPG"
dropimages[4].height=680
dropimages[4].width=472

</script>



<script language="JavaScript1.2">

// Drop-in slideshow II (hyperlinked)- Por Dynamic Drive
// Traducido por filmeo webmaster, http://www.filmeo.net
// Para buscar códigos y más scripts DHTML, visita http://www.dynamicdrive.com
// Estos créditos DEBEN estar intactos para poder usarlo libremente

var slideshow_width=472 // CONFIGURA EL ANCHO DEL SLIDESHOW (coloca el más ancho si utilizas imágenes de distintas dimensiones)
var slideshow_height=680 // CONFIGURA EL ALTO DEL SLIDESHOW (coloca el más alto si utilizas imágenes de distintas dimensiones)
var pause=3000 // CONFIGURA LA PAUSA ENTRE LAS IMÁGENES (2000=2 segundos)
</script>

<script language="JavaScript1.2">

var preloadedimages=new Array()
for (p=0;p<dropimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=dropimages[p]
}

var ie4=document.all&&navigator.userAgent.indexOf("Ope ra")==-1
var dom=document.getElementById&&navigator.userAgent.i ndexOf("Opera")==-1

if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+' ;height:'+slideshow_height+';overflow:hidden"><div id="canvas0" style="position:absolute;width:'+slideshow_width+' ;height:'+slideshow_height+';top:-'+slideshow_height+'"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+' ;height:'+slideshow_height+';top:-'+slideshow_height+'"></div></div>')
else
document.write('<a href="javascript:rotatelink()"><img name="defaultslide" src="'+dropimages[0]+'" border=0 height=680 width=472></a>')

var curpos=slideshow_height*(-1)
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1


function movepic(){
if (curpos<0){
curpos=Math.min(curpos+degree,0)
tempobj.style.top=curpos
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML='<img src="'+dropimages[curimageindex]+'" border=0 height=680 width=472></a>'
nextimageindex=(nextimageindex<dropimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("movepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=dropimages[curimageindex]
linkindex=curimageindex
curimageindex=(curimageindex<dropimages.length-1)? curimageindex+1 : 0
}


function resetit(what){
curpos=slideshow_height*(-1)
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
crossobj.style.top=curpos}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+dropimages[curimageindex]+'" border=0 height=680 width=472></a>'
rotateimage()
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)

</script>
  #2 (permalink)  
Antiguo 21/05/2009, 19:46
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Rotar imagenes

justo despues de crear el array, puedes hacer lo siguiente.
Código:
// array rellenado;
dropimages.sort(function(){return Math.round(Math.random()) - .5;});
el resultado es un orden aleatorio. puedes llamar la linea tantas veces quieras para que la posibilidad de que un elemento ocupe la misma posicion sea minima.
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 06:40.