原生js如何实现DOM节点冒泡排序的可视化?
比方说下图中,点击升序或者降序会对蓝色的li元素进行排序
我的实现升序的代码如下:
for(var i = 0; i < lis.length -1 ; i++){
for(var j = 0; j < lis.length - i - 1; j++){
if(lis[j].style.height > lis[j+1].style.height){
ul.insertBefore(lis[j+1],lis[j]);
}
}
}
可点击后的效果是干蹦,不是动画过渡的。请问如何在不依赖任何库和框架的情况下,实现冒泡排序的可视化呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我参照了知乎大神的方法,自己花了大半天的时间整出来了。代码有点乱,不过我写了注释,将就看吧。
(ase是一个按钮,我添加了点击事件。)
1.循环全部改成if判断,判断一次更新一次dom
2.for循环中创建一个动画队列,循环结束再复现出来
只想到这两个方案。感觉第二个更好,因为实现这一个就可以实现其他的排序算法的可视化
当时做ife的时候用的第一个