需要帮助在随机生成照片库中创建后退按钮

问题描述 投票:0回答:1

我制作了一个随机显示图像的图片库

现在我只能为下一个图像创建一个按钮,但我还需要为上一个图像创建一个后退按钮

我使用 javascript 来显示随机图像,现在我只能生成下一张图像。但我无法创建后退按钮来显示以前生成的图像 请帮忙 谢谢

<html>
<head>
<title>Image list</title>
<form name="imageForm">
  <table border=3>
   <tr align="center">
    <td>
      <input onclick="var temp = displayImage();displaynum(); return temp;"  type=button value="Click Here">
    </td>
  </tr>
  <tr>
    <td>
      <img src="http://i.imgur.com/xBwug66.jpg" name="canvas" />
    </td>
  </tr>
  </table>
</form>
<script language="javascript">

var imagesArray = [
'http://i.imgur.com/aOBAdcS.jpg',
'http://i.imgur.com/f40kyc3.jpg',
'http://i.imgur.com/oM9MlZN.jpg',
'http://i.imgur.com/iCqIdVP.jpg',
'http://i.imgur.com/wfjPTaL.jpg',
'http://i.imgur.com/BInZqYM.jpg',
'http://i.imgur.com/SQAUhGN.jpg',
'http://i.imgur.com/zjzaS7C.jpg',
'http://i.imgur.com/y2qtX0G.jpg',
'http://i.imgur.com/dguKz5P.jpg',
];

var usedImages = {};
var usedImagesCount = 0;


function displayImage(){

    var num = Math.floor(Math.random() * (imagesArray.length));
    if (!usedImages[num]){
        document.canvas.src = imagesArray[num];
        usedImages[num] = true;
        if (usedImagesCount === imagesArray.length){
            usedImagesCount = 0;
            usedImages = {};
        }
    } else {
        displayImage();
		displaynum();
    }
	

}



</script>
</html>

javascript html random numbers
1个回答
1
投票

这应该对你有用。 您必须有一个数组来跟踪您的历史记录。然后向后退时将结果弹出。

我更改了一些函数名称,这样更容易看出它是什么。我还删除了 displayNum() 因为你的源代码中没有它。

var imagesArray = [
    'http://i.imgur.com/aOBAdcS.jpg',
    'http://i.imgur.com/f40kyc3.jpg',
    'http://i.imgur.com/oM9MlZN.jpg',
    'http://i.imgur.com/iCqIdVP.jpg',
    'http://i.imgur.com/wfjPTaL.jpg',
    'http://i.imgur.com/BInZqYM.jpg',
    'http://i.imgur.com/SQAUhGN.jpg',
    'http://i.imgur.com/zjzaS7C.jpg',
    'http://i.imgur.com/y2qtX0G.jpg',
    'http://i.imgur.com/dguKz5P.jpg',
    ];

var usedImages = {};
var usedImagesCount = 0;
var numHistory = [];

function displayPreviousImage(){
    if (numHistory.length > 1){
      numHistory.pop();
      var num = numHistory[numHistory.length-1];
      document.canvas.src = imagesArray[num];
    }
}

function displayNextImage(){

    var num = Math.floor(Math.random() * (imagesArray.length));
    if (!usedImages[num]){
        numHistory.push(num);
        document.canvas.src = imagesArray[num];
        usedImages[num] = true;
        if (usedImagesCount === imagesArray.length){
            usedImagesCount = 0;
            usedImages = {};
        }
    } else {
        displayNextImage();
    }
}
<form name="imageForm">
  <table border="3">
   <tr align="center">
    <td>
      <input onclick="var tempPrev = displayPreviousImage(); return tempPrev;"  type=button value="Previous">           
      <input onclick="var tempNext = displayNextImage(); return tempNext;"  type=button value="Next">
    </td>
  </tr>
  <tr>
    <td>
      <img src="http://i.imgur.com/xBwug66.jpg" name="canvas" />
    </td>
  </tr>
  </table>
</form>

© www.soinside.com 2019 - 2024. All rights reserved.