Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

berkowitz

Imagens aleatórias

Recommended Posts

Pessoal, olá.

 

Estou precisando fazer um script de imagens aleatórias na minha página, mas elas não podem se repetir, e não estou conseguindo fazer.

 

É assim: na lateral da minha página existe um quadro que mostra 3 imagens, uma abaixo da outra. Essas imagens são aleatórias, mas a primeira não pode ser igual a segunda por exemplo, e assim por diante. Alguém pode me ajudar por favor???

 

O que eu já fiz até agora é isso:

 

<script language="JavaScript">  function criaBannerLateral(qtdImagens) {   imagens = new Array ("img1.jpg","img2.jpg","img3.jpg");   for(i = 0; i < qtdImagens; i++) {    indImg = Math.round(Math.random()*(imagens.length - 1));    banner = imagens[indImg];    document.write("<img src='" + banner + "' />");   }  }criaBannerLateral(3);</script>

Valew galera!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma idéia seria você criar um array com todos os nomes das imagens que você quer q sejam aleatórias, dae sempre q você pegar uma imagem você retira o nome do array e coloca o que estava antes, dessa forma você nunca vai pegar o mesmo nome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi cara.... você pode me esclarecer um pouco mais por favor???VALEWW!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal cara.... só que infelizmente seu script não me atende cara. Tipo assim... ele mostra uma imagem aleatória, certo? NO meu caso ele mostra 3 imagens por vez... uma abaixo da outra. O problema é que essas três imagens tem que ser uma diferente da outra, entende? Se a imagem 1.jpg aparecer, ela não pode aparecer novamente... entendeu?É difícil de explicar! ehehehee....Ó... roda o script que eu fiz que c vai entender melhor, ok? ;) FLOW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem bacana sua solução hein cara!! Bacana mesmo!! :D Só que infelizmente não rola no meu caso.... tipo... eu preciso que cada imagem seja única, entede? não pode ser por galerias....TIpo assim:Quando executo a função, aparecem as seguintes imagens:--0--8--4--1--5--3--9, entendeu? Não pode aparecer, por exemplo, assim:--0--8--4--1--8--3--9. A imagem 8 apareceu 2 vezes, e isso não pode acontecer.... esse é meu problema, entende?? Se eu usar por galerias, a imagem 1 sempre vai estar junto com a 2, com a 3 e com a 4 por exemplo. E não posso fazer assim....Tá meio difícil explicar meu problema, mas deu pra entender um pouco melhor agora??? :( VALEWWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

SIm, dessa forma não haverá repetição. Porém, a imagem 2 por exemplo sempre vai aparecer junto com a 1, com a 3, a 4 e a 5. Entendeu? E não posso fazer assim... as imagens tem que ser únicas e individuais... apresentei essa solução com galerias, mas me informaram que não pode ser.... :( Valew mesmo manow... vou continuar tentando aqui...FLOWWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa!! com toda certeza! ehehehehe....FLOWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

AAAAAAAAAEEEEEEE!!!!!! COOONNNNSSSSSEEEEGGGGUUUIIIII!!! huahuaahuahua... finalmente!!!

 

Putz... eu pensei numa solução bestinha e deu certo!! :P

 

É o seguinte... eu estava quebrando a cabeça tentando descobrir uma forma de criar um array dinâmico e ir jogando os números escolhidos nesse array, e depois comparar os novos antes de inserir... muito complexo!! Aí, do nada, me veio a idéia: "Mas.. e se eu excluir o item sorteado? Num rola??" E ROLOUUU!!!

Tipo assim: O sistema randômico escolheu o número 0. Então vou utilizar a imagem do indice 0 do Array. Aí, se eu excluir o indice 0, não tem como o próximo número ser o 0, concorda? pois o Array não vai ter mais o 0! :D

 

Putz... 2 dias quebrando a cabeça, mas finalmente consegui! uahahuahua.... vou postar os códigos aew!

 

<script language="JavaScript">var imagens = new Array();imagens[0] = "TP1.jpg";imagens[1] = "TP2.jpg";imagens[2] = "TP3.jpg";imagens[3] = "TP4.jpg";imagens[4] = "TP5.jpg";imagens[5] = "TP6.jpg";imagens[6] = "TP7.jpg";imagens[7] = "TP8.jpg";imagens[8] = "TP9.jpg";imagens[9] = "TP10.jpg";imagens[10] = "TP11.jpg";imagens[11] = "TP12.jpg";imagens[12] = "TP13.jpg";imagens[13] = "TP14.jpg";imagens[14] = "TP15.jpg";imagens[15] = "TP16.jpg";imagens[16] = "TP17.jpg";imagens[17] = "TP18.jpg";var preBuffer = new Array();for(i=0; i<imagens.length; i++) {preBuffer[i] = new Image();preBuffer[i].src = imagens[i];}function criaBannerTopo(qtdImagens) {for(i=0; i<qtdImagens; i++) {indImg = Math.round(Math.random()*(imagens.length - 1));banner = imagens[indImg];del = imagens.splice(indImg,1);document.write("<img src='/Rafael/site/imagens/topo/" + banner + "' id='" + indImg + "' class='imgBannerTopo' alt='' />");}}//-- Ao chamar o método, eu informo a quantidade de imagens que eu quero que apareçacriaBannerTopo(6);</script>

Bacana né??? :D

 

Galera, valew pela ajuda ehin!!!

FLLOWW!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

huahuahuahua.... valew manow! ehhee... mas num sou não!! http://forum.imasters.com.br/public/style_emoticons/default/skull.gif

 

Aew... amanhã o site entra no ar! Quando vocês acessarem, prestem atenção no banner superior.... fiz um esquema com JS e CSS! Deu trabalho mas ficou bem bacana! :D

 

FFLLOOWWW!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valew cara!!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu manow!!! você eh o cara do JS, to procurando por isso a dias!! e meu cliente quer pq que isso na pagina.

 

Agora soh mais um probleminha ehhe as imagens estao aparecendo todas em linha.. horizontal.

 

como fazer elas aparecerem em 2 linhas de 3?

 

e tb como fazer elas aparecerem verticalmente? (necessito fazer a coluna de links no msm esquema mas verticalmente)

 

Brigadao.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caaaaaaaaara... eu nem lembrava mais desse tópico! ahahahahha. Julho de 2005! Que coisa! rs...

 

Bom... você pode adicionar um "<br />" depois do código da imagem, ou então inserir em uma DIV e via CSS você controla depois como quiser. Só de inserir em DIVs ele já quebra.

 

Muda:

document.write("<img src='/Rafael/site/imagens/topo/" + banner + "' id='" + indImg + "' class='imgBannerTopo' alt='' />");

Para:

document.write("<div><img src='/Rafael/site/imagens/topo/" + banner + "' id='" + indImg + "' class='imgBannerTopo' alt='' /></div>");

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

Bom... você pode adicionar um "<br />" depois do código da imagem, ou então inserir em uma DIV e via CSS você controla depois como quiser. Só de inserir em DIVs ele já quebra.

...

Como existe uma classe para as imagens não é preciso acrescentar mais marcação basta declarar nas CSS o seguinte:

.imgBannerTopo {display: block;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um outro jeito de fazer:

 

<script language="javascript/text">
var imagens = 10
var quote = new Array(imagens+1)
quote[0]='<img src="images/banner1.jpg">';
quote[1]='<img src="images/banner2.jpg">';
quote[2]='<img src="images/banner3.jpg">';
quote[3]='<img src="images/banner4.jpg">';
quote[4]='<img src="images/banner5.jpg">';
quote[5]='<img src="images/banner6.jpg">';
quote[6]='<img src="images/banner7.jpg">';
quote[7]='<img src="images/banner8.jpg">';
quote[8]='<img src="images/banner9.jpg">';
quote[9]='<img src="images/banner10.jpg">';

function rndnumber(){
var randscript = -1
while (randscript < 0 || randscript > imagens || isNaN(randscript)){
randscript = parseInt(Math.random()*(imagens))
}
return randscript
}
quo = rndnumber()
quox = quote[quo]

document.write (quox);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, mas o que eu estou querendo mesmo eh assim: acho q o java pode ser mudado para isso.. de uma olhada na ideia.

 

tenho 3 (colunas) 3X3 3 (linhas) = 9 imagens sempre aparecendo

 

gostaria q entre essas 3x3 se intercalassem... aletoriamente.

 

e cada imagem com um link.. olhem a imagem abaixo por favor e me deem uma ideia.

 

obrigado

 

Imagem Postada

 

Por favor, tem jeito de fazer isso?

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que abraçar as imagens com o link

 

<a href="http://www.seusite.com.br"><img src="suaimagem.gif" border="0" alt="seualt" title="seutitle" /></a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.