【ife】任务十九:基础JavaScript练习(二)

var count = 0;
function left_in(){
	var number = document.getElementById("text").value;
	if (isNaN(number) || (number < 10 || number > 100)) 
		alert("请输入10-100的数字");
	else if (count < 60) {
		count++;
		var divElement = document.createElement("div");
		divElement.style.left = "0px";
		divElement.style.height = 3 * number + "px";
		var parentElement = document.getElementById("boxes");
		var childrenElement = parentElement.getElementsByTagName("div");
		var childrenLen = childrenElement.length; 
		for (var i = 0; i < childrenLen; i++) 
			childrenElement[i].style.left = childrenElement[i].style.left.slice(0, -2) -'0' + 22 + "px";
		divElement.setAttribute("class","box");
		divElement.style.top = 300 - 3 * number + "px";
		divElement.onclick = function() {deleteElement(this)};
		parentElement.insertBefore(divElement, childrenElement[0]);
	}
	else	
		alert("队列元素数量最多限制为60个");
}
function right_in(){
	var number = document.getElementById("text").value;
	if (isNaN(number) || (number < 10 || number > 100)) 
		alert("请输入10-100的数字");
	else if (count < 60) {
		count++;
		var divElement = document.createElement("div");
		var parentElement = document.getElementById("boxes");
		var childrenElement = parentElement.getElementsByTagName("div");
		var childrenLen = childrenElement.length; 
		if (childrenLen == 0)
			divElement.style.left = "0px";
		else
			divElement.style.left = childrenElement[childrenLen - 1].style.left.slice(0, -2) -'0' + 22 + "px";
		divElement.style.top = 300 - 3 * number + "px";
		divElement.style.height = 3 * number + "px";
		divElement.setAttribute("class","box");
		divElement.onclick = function() {deleteElement(this)};
		parentElement.appendChild(divElement);
	}
	else	
		alert("队列元素数量最多限制为60个");
}
function left_out(){
	var parentElement = document.getElementById("boxes");
	var childrenElement = parentElement.getElementsByTagName("div");
	var childrenLen = childrenElement.length;
	if (childrenLen != 0) {
		for (var i = 1; i < childrenLen; i++)
			childrenElement[i].style.left = childrenElement[i].style.left.slice(0, -2) -'0' - 22 + "px";
		parentElement.removeChild(childrenElement[0]);
		count--;
	}
}
function right_out(){
	var parentElement = document.getElementById("boxes");
	var childrenElement = parentElement.getElementsByTagName("div");
	var childrenLen = childrenElement.length;
	if (childrenLen != 0) {
		parentElement.removeChild(childrenElement[childrenLen - 1]);
		count--;
	}
}
function deleteElement(node){
	var parentElement = document.getElementById("boxes");
	var next = node.nextSibling;
	while (next != null) {
		next.style.left = next.style.left.slice(0, -2) -'0' - 22 + "px";
		next = next.nextSibling;
	}
	parentElement.removeChild(node);
	count--;
}
function random(){
	var numbers = [];
	for (var i = 0; i < 60; i++) {
		var number = Math.floor(Math.random() * 90 + 10);
		numbers.push(number);
		var divElement = document.createElement("div");
		var parentElement = document.getElementById("boxes");
		divElement.style.left = i * 20 + i * 2 + "px";
		divElement.style.top = 300 - 3 * number + "px";
		divElement.style.height = 3 * number + "px";
		divElement.setAttribute("class","box");
		parentElement.appendChild(divElement);
	}
	return numbers;
}
function sort(){
	var numbers = random();
	var parentElement = document.getElementById("boxes");
	var i = 0, j = 0;
    var time = setInterval(function() {
        if (i < numbers.length) {
            if (j < numbers.length - i) {
				if (numbers[j] > numbers[j + 1]) {
                    var temp = numbers[j];
                    numbers[j] = numbers[j + 1];
                    numbers[j + 1] = temp;
					parentElement.innerHTML = "";
					for (var k = 0; k < numbers.length; k++) {
						var textNode = document.createTextNode(numbers[k]);
						var divElement = document.createElement("div");
						divElement.appendChild(textNode);
						divElement.style.left = k * 20 + k * 2 + "px";
						divElement.style.top = 300 - 3 * numbers[k] + "px";
						divElement.style.height = 3 * numbers[k] + "px";
						divElement.setAttribute("class","box");
						parentElement.appendChild(divElement);
					}
                }
				j++;
            }
			else{
                i++;
				j = 0;
			}
		}
		else {
			clearInterval(time);
			return;
		}
	}, 100);  
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值