javascript - 是否可以交换 div 的两个孩子的位置并为其设置动画?
问题描述
所以我正在对一个数组的元素进行冒泡排序,该数组的数据来自一个文本区域。我从 textarea 中获取数据,将其放入一个数组中,然后将数组的每个元素附加到函数中调用的 divchars
中appendThem()
。那么,有什么方法可以动画化排序过程中发生的元素之间的交换?我之所以使用,是var array = new Array()
因为bubbleSort()
函数是在另一个文件中定义的,我想array
全局访问。我只是在这里交换 innerHTML。我想不出办法交换孩子。是否可以交换孩子并制作相同的动画?
var board = document.getElementsByClassName("chars")[0];
var array= new Array();
function appendthem(){
var input = document.getElementById("charInput").value;
input = input.replace(/ /g,'')
array = input.split(",");
while (board.firstChild) {
board.removeChild(board.lastChild);
} //Removing any existing children from old data when new data is entered
for(var i=0; i<array.length; i++){
var elem = document.createElement("p");
elem.style.marginLeft="20px";
var textnode = document.createTextNode(array[i]);
elem.appendChild(textnode);
board.appendChild(elem);
}
bubbleSort();
}
function bubbleSort(){
for(var m=0; m<array.length; m++){
isSwapped =false;
for(var j=0; j<array.length-m-1; j++){
if( Number(board.children[j].innerHTML) > Number(board.children[j+1].innerHTML) ){
var temp = board.children[j].innerHTML;
board.children[j].innerHTML = board.children[j+1].innerHTML;
board.children[j+1].innerHTML = temp;
isSwapped = true;
}
}
if( !isSwapped ){
break;
}
}
}
chars
div的 CSS ,如果需要:
.chars{
display: grid;
grid-template-columns: repeat(8, 1fr);
grid-column-gap: 0px;
}
更新:应要求添加了 HTML:
<html>
<head>
<link rel="stylesheet" href="index.css"/>
<script type="text/javascript" src="algorithms/bubble.js"></script>
</head>
<body>
<div class="container">
<div class="textbox">
<textarea id="charInput" placeholder="Enter numbers or letters separated by commas."></textarea>
</div>
<div class="board">
<div class="chars"></div>
</div>
<button class="submitBtn" onclick="appendthem()" >Sort!</button>
</div>
<script type="text/javascript" src="index.js"></script>
</body>
</html>
解决方案
推荐阅读
- c++ - std::vector 和其他中两种形式的初始值设定项列表的等价性
- winapi - 从 Direct2D 中的 C 宏获取虚假返回值
- android - 如何使特定版本的 Android 应用程序不可用?
- javascript - 使用 getValue 和数组值位置 (GAS) 在变量中获取值有什么区别?
- html - 我想更改在我的字段中输入的文本的颜色
- ios - 安装 Cocoapods gem 时如何修复 FilePermissions 错误
- bash - 如何在命令中使用“not in” - bash
- python - xmltodict: 解析引发 ValueError('Document 必须只有一个根。') - Python 3
- c# - 按 C# 中数据表中的计数分组
- asp.net-core - Saml2:我从 IDP 收到注销事件,但哪个用户已注销?