JavaScript界面演示 交换排序

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/main.css"/>
		<script src="js/jquery-1.7.2.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="js/sort.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="divMain right" id="right">
			<div class="buttonDiv" id="buttonDiv">
				<button class="button" οnclick="startInsertSort()"><span>开始</span></button>
			</div>
		</div>
	</body>
</html>


var frame = {};
var divFrame = {};
$(function() {
	/*排序的div*/
	divFrame._width = "5";
	divFrame.width = "5px";
	
	/*面板*/
	frame.obj = $("#right");
	frame.width = $("#right").width();
	frame.height = $("#right").height();
	frame.divNumber = parseInt(frame.width / divFrame._width);
});

/*初始化*/
function startInsertSort() {
	
	$("#buttonDiv").hide();
	var divArr = [];
	var num = frame.divNumber;
	for(var i = 0; i < num; i++) {
		var div = document.createElement("div");
		$(div).attr("class","newDiv");
		$(div).attr("id","div"+i);
		$(div).css("width",divFrame.width);
		$(div).css("height",getRandomHeight(frame.height, 1) + "px");
		$(div).css("left", i * divFrame._width + "px");
		frame.obj.append(div);
		divArr.push(div);
	}
	setTimeout(function(){
		insertSort(divArr, 0, 1);
	}, 2000);/*2秒后开始*/
	
}
/*开始排序 利用定时器 为了出现那种效果*/
function insertSort(arr, i, j) {
	var length = arr.length;
	if(i >= length)
		return false;
	
	var leftDiv = arr[i];
	var rightDiv = arr[j];
	$(arr[i-1]).css("background-color", "yellow");
	$(leftDiv).css("background-color", "yellow");
	$(rightDiv).css("background-color", "aqua");
	if($(arr[i]).height() > $(arr[j]).height()) {
		
		
		var l = $(arr[i]).position().left;
		var r = $(arr[j]).position().left;
		$(arr[i]).css("left", r + "px");
		$(arr[j]).css("left",l + "px");
		arr[i] = rightDiv;
		arr[j] = leftDiv;
		$(arr[i]).css("background-color", "white");
		$(arr[j]).css("background-color", "white");
	}
	setTimeout(function(){
		
		if(j + 1 >= length) {
			i = i + 1;
			j = i + 1;
		} else{
			j = j + 1;
		}
		insertSort(arr, i, j);
		$(rightDiv).css("background-color", "white");
	}, 1);
}
function getRandomHeight(max, min) {
	var range = max - min;
	var rand = Math.random();
	return (min + Math.round(range * rand));
}


css:


.right {
<span style="white-space:pre">	</span>position: relative;
<span style="white-space:pre">	</span>width: 100%;
}
.divMain {
	height: 700px;
	background-color: #666666;
	border-radius: 5px;
	box-shadow: 10px 10px 20px 10px;
	display: inline-block;
}

.button {
	display: inline-block;
	border-radius: 5px;
	background-color: #f4511e;
	border: none;
	color: #FFFFFF;
	text-align: center;
	width: 100px;
	height: 40px;
	transition: 0.5s;
	cursor: pointer;
	margin: 5px;
}

.button span {
	cursor: pointer;
	display: inline-block;
	position: relative;
	transition: 0.5s;
}

.button span:after {
	content: '»';
	position: absolute;
	opacity: 0;
	top: 0;
	right: -20px;
	transition: 0.5s;
}

.button:hover span {
	padding-right: 25px;
}

.button:hover span:after {
	opacity: 1;
	right: 0;
}

.button:active {
	background-color: #4CAF50;
	border: 2px solid #e7e7e7;
	transition: 0.1s;
}

.buttonDiv {
	position: absolute;
	margin-left: 45%;
	margin-top: 600px
}
#buttonDiv2 {
	position: absolute;
	z-index: 9999;
	margin-left: 45%;
	margin-top: 600px
}

.newDiv{
	position: absolute;
	border: solid 1px #000000;
	background-color: gainsboro;
	border-radius: 5px;
	bottom: 0px;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值