Jump to content
Biel.

servir vários banners com um script

Recommended Posts

Olá pessoal. BannerA está funcionando normalmente. Como usar mesmo script para bannerB e bannerC.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Banner Aleatório</title>
<style>
  /* Estilos opcionais para o banner */
#divPai {
margin: auto;
border: 2px solid red;
}

#bannerA {
width: 240px;
height: 480px; 
overflow: hidden;
position: relative;
}

#bannerA img {
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  transition: 1.5s ease-in;
}

#bannerA img.active {
  opacity: 1;
}


</style>
</head>
<body>
<div id="divPai">

<div id="bannerA" class="bannerA">
<a href="link1"><img src="image1.jpg" alt="Imagem 1"></a>
<a href="link2"><img src="image2.jpg" alt="Imagem 2"></a>
<a href="link3"><img src="image3.jpg" alt="Imagem 3"></a>
</div>

<!-- <hr>
<div id="bannerB" class="bannerB">
<a href="link4"><img src="image4.jpg" alt="Imagem 4"></a>
<a href="link5"><img src="image5.jpg" alt="Imagem 5"></a>
<a href="link6"><img src="image6.jpg" alt="Imagem 6"></a>
</div>

<hr>
<div id="bannerC" class="bannerC">
<a href="link7"><img src="image7.jpg" alt="Imagem 7"></a>
<a href="link8"><img src="image8.jpg" alt="Imagem 8"></a>
<a href="link9"><img src="image9.jpg" alt="Imagem 9"></a>
</div>  -->


</div>
<hr>


<script>
  document.addEventListener("DOMContentLoaded", function() {
  // var banner = document.getElementById("divPai");
  // var images = banner.querySelectorAll("img");

  var images = document.querySelectorAll("#bannerA img");

  // Função para exibir uma imagem aleatória
  function showRandomImage() {
    // Escolhe aleatoriamente um índice de imagem
    var randomIndex = Math.floor(Math.random() * images.length);

    // Define todas as imagens como ocultas
    images.forEach(function(img) {
      img.style.display = "none";
    });

    // Exibe a imagem aleatória
    images[randomIndex].style.display = "block";
    
  }

  // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos
  showRandomImage();
  setInterval(showRandomImage, 1000);

// makeSliderKind('.bannerA', 1000);
// makeSliderKind('.bannerB', 2000);
// makeSliderKind('.bannerC', 3000);
});

</script>
</body>
</html>

 

Share this post


Link to post
Share on other sites

Seria algo dessa maneira no html tente deixar um nome comum apenas o id precisa ser um valor unico class deve ser usado para definir padrões visuais pensando em um grupo

HTML:

<div id="divPai">
  <div id="bannerA" class="banner">
    <a href="link1"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/225865593/rmu3bewcv3pqkzx32hjk-qe5uzhcwvt.jpg" alt="Imagem 1"></a>
    <a href="link2"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/217352435/rfl14_off_pk_1-v2ofz4r0h3.jpg" alt="Imagem 2"></a>
    <a href="link3"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/77172972/45c63850c8.jpg" alt="Imagem 3"></a>
  </div>

  <hr>
  <div id="bannerB" class="banner">
    <a href="link4"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/225865593/rmu3bewcv3pqkzx32hjk-qe5uzhcwvt.jpg" alt="Imagem 4"></a>
    <a href="link5"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/217352435/rfl14_off_pk_1-v2ofz4r0h3.jpg" alt="Imagem 5"></a>
    <a href="link6"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/77172972/45c63850c8.jpg" alt="Imagem 6"></a>
  </div>

  <hr>
  <div id="bannerC" class="banner">
    <a href="link7"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/225865593/rmu3bewcv3pqkzx32hjk-qe5uzhcwvt.jpg" alt="Imagem 7"></a>
    <a href="link8"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/217352435/rfl14_off_pk_1-v2ofz4r0h3.jpg" alt="Imagem 8"></a>
    <a href="link9"><img src="https://cdn.awsli.com.br/2500x2500/1737/1737952/produto/77172972/45c63850c8.jpg" alt="Imagem 9"></a>
  </div>
</div>


CSS:
 

/* Estilos opcionais para o banner */
#divPai {
margin: auto;
border: 2px solid red;
}

.banner {
  width: 240px;
  height: 480px; 
  overflow: hidden;
  position: relative;
  
}
.banner img {
  width: 100%;
  height: auto;
}

/*#bannerA {
width: 240px;
height: 480px; 
overflow: hidden;
position: relative;
  
}*/

.banner img {
  position: absolute;
  top: 0;
  left: 0;
  animation-name: smooth-effect;
  animation-duration: 4s;
}

/*#bannerA img.active {
  opacity: 1;
}*/


/* The animation code */
@keyframes smooth-effect {
  from {opacity: 0;}
  to {opacity: 1;}
}



JS: foi criado a function makeSliderKind e alterado o metodo showrandomImage para uma arrow function

function makeSliderKind(containerClass, intervalTime){
  
  var images = document.querySelectorAll(containerClass+" img");

  // Função para exibir uma imagem aleatória
  const showRandomImage = () => {
    // Escolhe aleatoriamente um índice de imagem
    var randomIndex = Math.floor(Math.random() * images.length);

    // Define todas as imagens como ocultas
    images.forEach(function(img) {
      img.style.display = "none";
    });

    // Exibe a imagem aleatória
    images[randomIndex].style.display = "block";
  };

  // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos
  showRandomImage();
  setInterval(showRandomImage, intervalTime);
}


makeSliderKind('#bannerA', 2000);
makeSliderKind('#bannerB', 10000);
makeSliderKind('#bannerC', 3000);

Jsbin: https://jsbin.com/qimajoyuna/edit?html,css,js,output

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Biel.
      Olá pessoal. Ao digitar um texto qualquer no input e pressionar submit o valor do atributo href é alterado temporariamente. Como alterar permanentemente no corpo do documento  o valor do atributo href, digitando um nome de link qualquer no campo input e em seguida submit ?
      <!DOCTYPE html> <html> <head> <style> input { width: 100%; font-size: 20px; } textarea { width: 100%; font-size: 16px; height: 200px; } .class88 { margin-top: 50px; padding: 10px; max-width: 100px; } </style> </head> <body> <h2> alterar valor do atributo href</h2> digite um texto qualquer <input type="text" class="class42" value=""> <a id="linkToChange" href="teste5.php" class="class43"></a> <input type="submit" class="class88" value="enviar" onclick="alterarHref()"> <script> function alterarHref() { // pega o valor da class42 var valorDaclass42 = document.querySelector('.class42').value.trim(); // altera o valor do atributo href para o valorDaclass42 sugerido document.querySelector('.class43').setAttribute('href', valorDaclass42); console.log("Href alterado:", valorDaclass42); } </script> </body> </html>  
    • By Biel.
      Olá pessoal. O banner abaixo está funcionando e o link acompanha o banner, até aqui tudo ok ! Quero muito fazer uma transição suave entre uma image e outra, colocando as propiedades e valores no css ou diretamente no javascript e nada de propiedades e valores no html através do style . Se possível coloque no código somente o que precisa . Obrigado!
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Banner</title> <style> /* Estilos opcionais para o banner */ .banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner img { width: 100%; height: auto; position: absolute; top: 0; left: 0; transition: 1.5s ease-in; } .banner img.active { opacity: 1; } </style> </head> <body> <div class="banner" id="banner"> <a href="link1" class="ggg"><img src="image1.jpg" alt="Imagem 1"></a> <a href="link2" class="ggg"><img src="image2.jpg" alt="Imagem 2"></a> <a href="link3" class="ggg"><img src="image3.jpg" alt="Imagem 3"></a> <a href="link4" class="ggg"><img src="image4.jpg" alt="Imagem 4"></a> <a href="link5" class="ggg"><img src="image5.jpg" alt="Imagem 5"></a> </div> <script> document.addEventListener("DOMContentLoaded", function() { var banner = document.getElementById("banner"); var images = banner.querySelectorAll("img"); // Função para exibir uma imagem aleatória function showRandomImage() { // Escolhe aleatoriamente um índice de imagem var randomIndex = Math.floor(Math.random() * images.length); // Define todas as imagens como ocultas images.forEach(function(img) { img.style.display = "none"; }); // Exibe a imagem aleatória images[randomIndex].style.display = "block"; } // Chama a função inicialmente e define um intervalo para exibir novas imagens a cada 3 segundos showRandomImage(); setInterval(showRandomImage, 3000); }); </script> </body> </html>  
       
    • By Biel.
      Olá pessoal. O banner abaixo está funcionando normalmente, mas a transição entre uma imagem e outra está um tanto truculenta. Quero deixar suave. Como resolver isso? Obrigado !
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>transition suave entre uma image e outra</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } #bannerGG { width: 100%; height: auto; position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 1s ease-in-out; } /* #tete:active { opacity: 1; } */ </style> </head> <body> <div id="banner"> <img class="bannerGG" src="imagem1.png" alt="Image 1"> <img class="bannerGG" src="imagem2.png" alt="Image 2"> <img class="bannerGG" src="imagem3.png" alt="Image 3"> <img class="bannerGG" src="imagem4.png" alt="Image 4"> <img class="bannerGG" src="imagem5.png" alt="Image 5"> </div> <script> const image = document.querySelectorAll('.bannerGG'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * image.length); const randomImage = image[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; const linkElement = document.createElement('a'); linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 3000); </script> </body> </html>  
    • By Biel.
      Olá pessoal. O banner abaixo está funcionando, mas quero que o link do banner venha da tag a  e não do javascript . Como resolver? 
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mostrar link do banner que está na tag a</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner-img { width: 100%; height: 100%; object-fit: cover; position: absolute; /* opacity: 0; */ transition: opacity 0.5s ease-in-out; } .banner-link { display: block; width: 100%; height: 100%; } </style> </head> <body> <div id="banner"> <a href="link147"><img class="banner-img" src="imagem1.png" alt="Image 1"></a> <a href="link254"><img class="banner-img" src="imagem2.png" alt="Image 2"></a> <a href="link350"><img class="banner-img" src="imagem3.png" alt="Image 3"></a> <a href="link462"><img class="banner-img" src="imagem4.png" alt="Image 4"></a> <a href="link538"><img class="banner-img" src="imagem5.png" alt="Image 5"></a> </div> <script> const images = document.querySelectorAll('.banner-img'); const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * images.length); const randomImage = images[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = randomImage.src; imgElement.alt = randomImage.alt; imgElement.classList.add('banner-img'); const linkElement = document.createElement('a'); // linkElement.appendChild(imgElement); linkElement.href = randomImage.href; linkElement.classList.add('banner-link'); linkElement.href = "page" + (randomIndex + 1) + ".html"; // Link para cada imagem linkElement.appendChild(imgElement); banner.innerHTML = ''; banner.appendChild(linkElement); } showRandomImage(); setInterval(showRandomImage, 1000); </script> </body> </html> Resolvido,  Obrigado a todos !
    • By Biel.
      Olá pessoal. O banner abaixo está funcionando normalmente,, mas quero fazer o seguinte: Colocar as imagens diretamente no html e mostrar o link da imagem que está passando.
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>colocar imagens do banner no html</title> <style> #banner { width: 240px; height: 480px; overflow: hidden; position: relative; } .banner-img { width: 100%; height: 100%; object-fit: cover; position: absolute; transition: opacity 0.5s ease-in-out; } .banner-link { display: block; width: 100%; height: 100%; } </style> </head> <body> <div id="banner"></div> <!-- <div id="banner"> <a href="link147"><img class="banner-img" src="imagem1.png" alt="Image 1"></a> <a href="link254"><img class="banner-img" src="imagem2.png" alt="Image 2"></a> <a href="link350"><img class="banner-img" src="imagem3.png" alt="Image 3"></a> <a href="link462"><img class="banner-img" src="imagem4.png" alt="Image 4"></a> <a href="link538"><img class="banner-img" src="imagem5.png" alt="Image 5"></a> </div> --> <script> // const images = document.querySelectorAll('.banner-img'); // const randomIndex = Math.floor(Math.random() * images.length); const images = [ "imagem1.png", "imagem2.png", "imagem3.png", "imagem4.png", "imagem5.png" ]; const banner = document.getElementById('banner'); function showRandomImage() { const randomIndex = Math.floor(Math.random() * images.length); const imageUrl = images[randomIndex]; const imgElement = document.createElement('img'); imgElement.src = imageUrl; imgElement.alt = "Random Image"; imgElement.classList.add('banner-img'); const linkElement = document.createElement('a'); linkElement.classList.add('banner-link'); linkElement.href = randomIndex + 1; linkElement.appendChild(imgElement); banner.innerHTML = ''; // Limpa o conteúdo anterior banner.appendChild(linkElement); } showRandomImage(); // Exibir uma imagem aleatória inicial setInterval(showRandomImage, 2000); // Alterar a imagem aleatória a cada 2 segundos </script> </body> </html>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.