今天就做个九宫格的简易拼图,最让我头疼的就是点击开始打乱图片位置。一开始在百度查看相关博客,走了很多弯路。最后看了众多的例子,自己写了个方法。
1 <script>
2 //打乱图片方法
3 function fun(){
4 var x = [];
5 var y ;
6 for(var i=1;i<10;i++){
7 var div = document.getElementById("d"+i+"");
8 div.removeChild(document.getElementById("img"+i+""));
9 }
10 for(var i=1;i<10;i++){
11 var img = document.createElement('img'); //动态创建img标签
12 var div1 = document.getElementById("d"+i+"");
13 var p = [1,2,3,4,5,6,7,8,9]; //用p[]数组保存图片的代号
14 var j = Math.round(Math.random()*8); //通过随机数j产生随机图片代号p[j]
15 for ( var u=0 ; u < x.length ; u++ ) //遍历x[]数组防止后面出现与前面一样的图片代号
16 {
17 if ( x[u] == p[j] )
18 {
19 y = x[u];
20 break;
21 }
22 }
23 if(p[j]==y){
24 i-=1;
25 continue;
26 }else{
27 img.setAttribute("src","images/tiger_0"+p[j]+".gif");
28 img.id = "img"+i+"";
29 }
30 div1.appendChild(img);
31 x.push(p[j]); //添加已经出现的图片号数进入x[]数组
32 }
33 dragdrop();//拖动图片方法
34 }
35 </script>
点击开始可以达到随机打乱图片位置的效果。