码迷,mamicode.com
首页 > 编程语言 > 详细

Windjs之冒泡排序过程展示

时间:2015-01-13 12:14:06      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

  太棒的Windjs体验!写一个冒泡过程的展示,how?

  先写个冒泡排序,坑爹的是我居然不会写...用惯了stl的今天连个冒泡都不会了也是醉了,写了蛮久居然发现写出来的是选择排序...纠结了蛮久还是给拼出来了...

  but排序和画圆一样,都是一瞬间的事情,完全看不清中间bubble的过程。

  怎么破 技术分享

  再次祭出大杀器Windjs!from my point of view,Windjs就是能使得“线程”挂起的东西,跟vbs的sleep函数异曲同工;“挂起”后,不再执行任何js代码。按照老赵的话来说:"

  在大部分平台上编写这样的程序并没有太大困难,只要在绘制出图形之后短暂地阻塞线程就行了。可惜,在JavaScript中我们只能“一蹴而就”,要暂停的话,只能使用setTimeout进行回调了。不过,这也正是Jscex的用武之地,用Jscex编写的代码需要“暂停”,只需要简单地调用sleep异步方法,一切都很直接。"

  其实用setTimeout进行回调也是可以的,不过第二个参数的时间需要累积,很麻烦,不优雅,而for的继续执行会使代码出现各种坑爹结果...

  so 如果想要用html5做动画或者特效,Windjs真的是个很好的辅助工具~

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3   <head>
 4     <link rel="stylesheet" href="reset.css">
 5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6     <title> </title>
 7     <script src="jquery.js"></script>
 8     <script src="wind-all-0.7.3.js"></script>
 9     <style>
10       span {border:1px solid red; width:40px; height:40px; position: absolute; text-align: center; line-height:40px}
11     </style>
12     <script>
13       window.onload = function() {
14         var run = eval(Wind.compile(async, function() {
15           var from = [];
16           var list = document.getElementsByTagName(span);
17           for(var i = 0; i < list.length; i++) {
18             list[i].style.left = 50 * i + px;
19             from[i] = i;
20           }
21 
22           for(var i = 9; i >= 1; i--)
23             for(var j = 0; j < i; j++) {
24               var x = list[from[j]].innerHTML;
25               var y = list[from[j + 1]].innerHTML;
26               if(x > y) {
27                 $(span).eq(from[j]).animate({left:+=50px});
28                 $(span).eq(from[j + 1]).animate({left:-=50px});
29                 $await(Wind.Async.sleep(1000));
30                 var temp = from[j];
31                 from[j] = from[j + 1];
32                 from[j + 1] = temp;
33               } else {
34                 $(span).eq(from[j]).css(borderColor, green);
35                 $(span).eq(from[j + 1]).css(borderColor, green);
36                 $await(Wind.Async.sleep(1000));
37                 $(span).eq(from[j]).css(borderColor, red);
38                 $(span).eq(from[j + 1]).css(borderColor, red);
39                 $await(Wind.Async.sleep(1000));
40               }
41             }
42         }));   
43 
44         run().start();
45       };
46     </script>
47   </head>
48   <body>
49     <span>9</span>
50     <span>1</span>
51     <span>3</span>
52     <span>6</span>
53     <span>4</span>
54     <span>5</span>
55     <span>2</span>
56     <span>8</span>
57     <span>7</span>
58     <span>0</span>
59   </body>
60 </html>
bubble.html

 

Windjs之冒泡排序过程展示

标签:

原文地址:http://www.cnblogs.com/zichi/p/4220554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!