争夺图像 - Javascript

时间:2014-03-24 22:57:54

标签: javascript image onclick swap

我有一张3x4的图像表,我想像拼图一样拼写。总共有12个独立的GIF。我需要帮助的地方是,严格使用javascript,如何设置它,以便每次页面加载时随机乱码图像?到目前为止,我已将所有图像加载到一个数组中:

不完整的JS:

var imgArray = new Array();

imgArray[0] = new Image();
imgArray[0].src = 'pic_01.gif';

imgArray[1] = new Image();
imgArray[1].src = 'pic_02.gif';

imgArray[2] = new Image();
imgArray[2].src = 'pic_03.gif';

imgArray[3] = new Image();
imgArray[3].src = 'pic_04.gif';

etc... pic_05.gif...

我的HTML:

<table>
<tr>
    <th> <img src="pic_01.gif" onclick="imageSwap()" alt="" border= height=100           width=100></img> </th>
    <td> <img src="pic_02.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_03.gif" alt="" border= height=100 width=100></img></td>
</tr>
<tr>
    <td> <img src="pic_04.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_05.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_06.gif" alt="" border= height=100 width=100></img></td>
</tr>
<tr>
    <td> <img src="pic_07.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_08.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_09.gif" alt="" border= height=100 width=100></img></td>
</tr>
<tr>
    <td> <img src="pic_10.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_11.gif" alt="" border= height=100 width=100></img></td>
    <td> <img src="pic_12.gif" alt="" border= height=100 width=100></img></td>
</tr>
</table>

我最终想要做的是让用户点击一个随机的&#39;图像并将其与另一个随机的&#39;交换。图像,解决难题。任何输入都表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您最好的选择是为每个random元素添加一个类(比方说img):

<img src="pic_10.gif" class="random" alt="" height=100 width=100 />

然后我们可以使用简单的querySelectorAll

获取所有图像
var images = document.querySelectorAll('.random');

随机化src s:

的数组
var srcs = ['pic_01.gif', 'pic_01.gif', etc, etc];
srcs = srcs.sort(function() { return Math.random() > 0.5; });

然后迭代图像,将新的src应用于每个:

for (var i = 0; i < images.length; ++i) {
  images[i].src = srcs[i];
}

完整的功能是:

var imageSwap = function() {
  var images = document.querySelectorAll('.random');

  var srcs = ['pic_01.gif', 'pic_01.gif', etc, etc];
  srcs = srcs.sort(function() { return Math.random() > 0.5; });


  for (var i = 0; i < images.length; ++i) {
    images[i].src = srcs[i];
  }
};

Example JSFiddle