繁体   English   中英

如何在随机图像阵列中显示特定图像

[英]How can I display specific image in array of random images

我有工作javascipt代码,点击卡后显示图像数组的随机图像。 有3张牌,每次点击后,人们都会看到一个不重复的随机图像。 我现在的目标是确保该人必须看到特定的图像2.jpg,例如在这3张牌中的一张中,它将仅显示在一张牌中。 这是我的HTML:

        <!DOCTYPE html>
    <html lang="en">

    <head>
      <meta charset="UTF-8">
      <title>Card</title>
      <link rel="stylesheet" href="main.css">
    </head>

    <body>
      <div class="wrap">
        <div class="card">
          <div class="front" onclick="getCard(0)"><img class="img1" src="https://lp.rustaro.ru/wp-content/uploads/transformation/cards/1.jpg" alt=""></div>
          <div class="back"><img class="img1" src="" name="randimg1"></div>
        </div>
        <div class="card">
          <div class="front" onclick="getCard(1)"><img class="img1" src="https://lp.rustaro.ru/wp-content/uploads/transformation/cards/1.jpg" alt=""></div>
          <div class="back"><img class="img1" src="" name="randimg2"></div>
        </div>
        <div class="card">
          <div class="front" onclick="getCard(2)"><img class="img1" src="https://lp.rustaro.ru/wp-content/uploads/transformation/cards/1.jpg" alt=""></div>
          <div class="back"><img class="img1" src="" name="randimg3"></div>
        </div>
      </div>
      <script src="main.js"></script>
    </body>

    </html>

和JavaScript部分:

    // Turning images
    var images = [];

    (function() {
      generateCards()
    })();

    var cards = document.querySelectorAll('.card');

    Array.from(cards).forEach(function(card) {
      card.addEventListener('click', function() {
        Array.from(card.querySelectorAll('.back, .front')).forEach(function(el) {
          ['back', 'front'].forEach(function(s) {
            el.classList.toggle(s)
          });
        });
      });
    });

    //Displaying different images on click
    function cardImg(index) {
      var cardNewImg = randomIntFromInterval(2,10);
      if (images[index] !== undefined) 
      {
        images[index] = -1;
      }     
      while (images.indexOf(cardNewImg)!= -1){
        cardNewImg = randomIntFromInterval(2,11); 
      }  
      images[index] = cardNewImg;
    }

    function generateCards() {
      for (var i = 0; i < 3; i++) {
        cardImg(i);
      }
    }

    function getCard(index) {
      if(!images[index].valid) {
        cardImg(index)
      }
      document["randimg"+(index + 1)].src = "https://lp.rustaro.ru/wp-content/uploads/transformation/cards/" + images[index] + ".jpg";
    }

    function randomIntFromInterval(min,max)
    {
      return Math.floor(Math.random()*(max-min+1)+min);
    }

这是工作上的链接。 任何帮助,将不胜感激。

这将确保第一张(最左边)的卡总是nbr 2

function cardImg(index) {     
  var cardNewImg = randomIntFromInterval(2,10);
  if (images[index] !== undefined) 
  {
    images[index] = -1;
  }     
  while (images.indexOf(cardNewImg)!= -1)
  {
    cardNewImg = randomIntFromInterval(2,11); 
  }
  if (images.indexOf(2) == -1)
  { 
    images[index] = 2;
  }else{  
    images[index] = cardNewImg;}
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM