Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.80 KB | None | 0 0
  1. <html>
  2. <head>
  3.     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  4.     <style>
  5.         table
  6.         {
  7.             width:1500px;
  8.             margin: 0;
  9.             padding: 0;
  10.             font-size:6px;
  11.             border-spacing:0;
  12.         }
  13.  
  14.         td
  15.         {
  16.             margin: 0;
  17.             padding: 0;
  18.             width:150x;
  19.             height:10px;
  20.             border:1px solid white;
  21.             background:#eee;
  22.         }
  23.  
  24.         td div
  25.         {
  26.             display:block;
  27.             float:left;
  28.             text-align:center;
  29.             width:100%;
  30.             height:33%;
  31.             cursor:pointer;
  32.         }
  33.  
  34.         .current
  35.         {
  36.             background-color:red;
  37.         }
  38.  
  39.         .current.clickable
  40.         {
  41.             background-color:blue;
  42.         }
  43.  
  44.         .north
  45.         {
  46.             background:#aa0;
  47.         }
  48.  
  49.         .east
  50.         {
  51.             background:#0aa;
  52.             width:50%;
  53.             float:right;
  54.         }
  55.         .west
  56.         {
  57.             background:#088;
  58.             width:50%;
  59.         }
  60.         .south
  61.         {
  62.             background:#880;
  63.         }
  64.         .north:hover
  65.         {
  66.             background:#fa6;
  67.         }
  68.         .south:hover
  69.         {
  70.             background:#fa0;
  71.         }
  72.         .east:hover
  73.         {`
  74.             background:#f6a;
  75.         }
  76.         .west:hover
  77.         {
  78.             background:#f06;
  79.         }
  80.         .potential
  81.         {
  82.             background-color:yellow;
  83.         }
  84.        
  85.         .current {border:1px solid black}
  86.  
  87.     </style>
  88. </head>
  89. <body>
  90. <table id="grid">
  91. </table>
  92. <script type="text/javascript">
  93.     function default_for(arg, val)
  94.     {
  95.         return typeof arg !== 'undefined' ? arg : val;
  96.     }
  97.    
  98.     function json_togrid(data, bit, result)
  99.     {
  100.         var result = default_for(result, []);
  101.         var keys = Object.keys(data);
  102.         keys.forEach(function(key)
  103.         {
  104.             var tkeys = Object.keys(data[key]);
  105.             tkeys.forEach(function(tkey)
  106.             {
  107.                 if (data[key][tkey] == -1)
  108.                     return  ;
  109.                 if (typeof result[key] == 'undefined')
  110.                 result[key] = Array();
  111.                 var okeys = Object.keys(data[key][tkey]);
  112.                 okeys.forEach(function(okey)
  113.                 {
  114.                     if (typeof result[key][tkey] == 'undefined')
  115.                         result[key][tkey] = Array();
  116.                     result[key][tkey][okey] |= (1 << bit);
  117.                 });
  118.             });
  119.         });
  120.         return result;
  121.     }
  122.  
  123.     function get_grid(x, y, ori)
  124.     {
  125.         x = default_for(x, 50);
  126.         y = default_for(y, 70);
  127.         ori = default_for(ori, 0);
  128.  
  129.         var ajax_time= new Date().getTime();
  130.         res = $.getJSON('grid.php', {"x" : x, "y" : y, "ori" : ori}).done(function(data)
  131.         {
  132.             fill_array_time = new Date().getTime();
  133.             console.log('--request :', fill_array_time - ajax_time);
  134.             var grid= json_togrid(data, 0);
  135.             if (typeof grid[y] == 'undefined')
  136.                 grid[y] = Array();
  137.             draw_grid(grid, x, y);
  138.         });
  139.     }
  140.  
  141.     function    append_link(node, classname, content)
  142.     {
  143.         var tmpdv = document.createElement('div');
  144.         tmpdv.className += " " + classname
  145.     //  tmpdv.textContent = content;
  146.         node.appendChild(tmpdv);
  147.     }
  148.  
  149.     function draw_grid(grid, x, y)
  150.     {
  151.         ghtml = document.getElementById('grid');
  152.         ghtml.innerHTML = '';
  153.  
  154.         for (var i = 0; i < 100; ++i)
  155.         {
  156.             var tmptr = document.createElement('tr');
  157.             for (var j = 0; j < 150; ++j)
  158.             {
  159.                 var tmptd = document.createElement('td');
  160.                 if (y == i && x == j)
  161.                     tmptd.className += " current";
  162.                 if (typeof grid[i] != 'undefined' && typeof grid[i][j] != 'undefined')
  163.                 {
  164.                     tmptd.className += ' clickable';
  165.                     if (typeof grid[i][j][0] != 'undefined')
  166.                         append_link(tmptd, "north", "N");
  167.                     if (typeof grid[i][j][3] != 'undefined')
  168.                         append_link(tmptd, "west", "W");
  169.                     if (typeof grid[i][j][1] != 'undefined')
  170.                         append_link(tmptd, "east", "E");
  171.                     if (typeof grid[i][j][2] != 'undefined')
  172.                         append_link(tmptd, "south", "S");
  173.                 }
  174.                 tmptr.appendChild(tmptd);
  175.             }
  176.             ghtml.appendChild(tmptr);
  177.         }
  178.     }
  179.  
  180.     $(document).ready(function()
  181.     {
  182.             get_grid();
  183.     });
  184.  
  185.     $('#grid').on('click', '.clickable div', function()
  186.     {
  187.         var orient = Array("north", "east", "south", "west");
  188.         var x = $(this).parent().index();
  189.         var y = $(this).parent().parent().index();
  190.         var ori = orient.indexOf($(this).attr('class').trim());
  191.         get_grid(x, y, ori);
  192.     });
  193. </script>
  194. </body>
  195. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement