使用html css和js的动画进行冒泡排序

使用html css和js的动画进行冒泡排序

代码 :

            Bubble Sort Animation            body {            display: flex;            flex-direction: column;            justify-content: center;            align-items: center;            background-color: #1c1c1c;            color: white;            font-family: Arial, sans-serif;            height: 100vh;            margin: 0;        }        h1 {            margin-bottom: 100px;        }        .container {            display: flex;            justify-content: center;            align-items: center;            gap: 20px;        }        .ball {            width: 70px;            height: 70px;            background-color: black;            border-radius: 50%;            display: flex;            justify-content: center;            align-items: center;            color: white;            font-size: 18px;            transition: transform 1.5s ease, box-shadow 1.5s ease;        }        .comparing {            box-shadow: 0px 0px 20px 5px yellow;            transform: translateY(-20px); /* Move upward */        }        .swapping {            box-shadow: 0px 0px 20px 5px red;            transform: translateY(20px); /* Move downward for swap effect */        }        .sorted {            background-color: green;        }        .description {            margin-top: 60px;            font-size: 25px;            color:yellow;        }    

Bubble Sort Animation

Starting Bubble Sort...
const array = [5, 3, 8, 4, 2, 6]; // Initial array const container = document.getElementById("balls-container"); const description = document.getElementById("description"); // Function to create the circular balls representing the array function createBalls() { container.innerHTML = ''; array.forEach((value, index) => { const ball = document.createElement("div"); ball.classList.add("ball"); ball.textContent = value; ball.setAttribute("id", `ball-${index}`); container.appendChild(ball); }); } // Function to swap elements in the DOM function swapElements(idx1, idx2) { const ball1 = document.getElementById(`ball-${idx1}`); const ball2 = document.getElementById(`ball-${idx2}`); const tempText = ball1.textContent; ball1.textContent = ball2.textContent; ball2.textContent = tempText; } // Bubble Sort Algorithm with Animation async function bubbleSort() { let n = array.length; for (let i = 0; i < n; i++) { for (let j = 0; j setTimeout(resolve, 3000)); // Slower animation // Compare and swap if necessary if (array[j] > array[j + 1]) { description.textContent = `Swapping: ${array[j]} and ${array[j + 1]}`; [array[j], array[j + 1]] = [array[j + 1], array[j]]; swapElements(j, j + 1); ball1.classList.add("swapping"); ball2.classList.add("swapping"); await new Promise(resolve => setTimeout(resolve, 2000)); } // Remove comparison and swapping highlights ball1.classList.remove("comparing", "swapping"); ball2.classList.remove("comparing", "swapping"); } // Mark the last sorted element document.getElementById(`ball-${n - i - 1}`).classList.add("sorted"); } description.textContent = "Array is sorted!"; } // Initialize and start the animation createBalls(); bubbleSort();

以上就是使用html css和js的动画进行冒泡排序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1493246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 15:31:49
下一篇 2025年12月19日 15:31:55

相关推荐

  • 使用 html css js 的线圈错觉

    代码 Concentric Circle Coil Animation body { margin: 0; height: 100vh; display: flex; justify-content: center; align-items: center; background-color: #0…

    2025年12月19日
    000
  • React-Joyride

    简介开发 web 应用程序时,提供流畅直观的用户体验至关重要。无论是引导新用户还是通过功能更新指导现有用户,产品导览或演练都是增强可用性的流行解决方案。对于 react 开发人员来说,react joyride 是一个强大的工具,可以轻松灵活地添加这些交互式游览。 在本文中,我们将探讨 react …

    2025年12月19日
    000
  • 为前端库设计开发人员工具链

    在当今的 web 开发世界中,创建应用程序比以往更加复杂。为了帮助开发人员高效地构建用户友好的应用程序,我们可以创建开发人员工具链。工具链是一组帮助开发人员编写、测试和构建应用程序的工具和流程。在本文中,我们将探讨如何为前端库设置开发人员工具链,重点关注捆绑、转译和热重加载等关键流程。我们将以易于理…

    2025年12月19日
    000
  • 网页设计中的过度架构

    我最近在 X 上读到了 @justinfagnani 的一篇文章,内容是: “Lit 不是框架。浏览器才是框架。” 这让我思考了近年来我们如何构建网络。 在相当长的一段时间里,如果您了解 HTML、CSS 和 JavaScript,那么您确实不需要框架来构建 Web 应用程序。最多,您可能会使用一些…

    2025年12月19日
    000
  • 如何在Bootstrap中进行用户列表UI设计?

    用户列表是一种常见的界面元素,用于显示系统中的用户列表。在 bootstrap 中,您可以使用各种布局和样式选项来设计用户列表的外观。 如何使用 html 和 css 制作用户列表 在 bootstrap 中创建用户列表的一种方法是使用 和 元素来创建已使用项目的无序列表。然后,您可以使用 boot…

    2025年12月19日
    000
  • 如何使用 Tailwind CSS 和 JavaScript 创建圆形菜单

    大家好,今天我们将使用 Tailwind CSS 和 JavaScript 创建一个圆形菜单。 什么是圆形菜单?圆形菜单是一种 UI 组件,其中菜单项围绕中心按钮或点以圆形或放射状图案排列。这种类型的菜单通常用于节省空间,同时提供视觉上引人入胜的交互式导航体验。激活后,菜单项会围绕中心按钮展开为圆形…

    2025年12月19日
    000
  • 使用 JavaScript 构建“谁想成为百万富翁”

    根据热门问答节目“谁想成为百万富翁”创建游戏是练习 javascript 技能同时构建有趣且互动的游戏的绝佳方法。这篇博文将引导您了解如何构建这款游戏,包括计时器、生命线和评分系统。 游戏的主要特点多项选择题:玩家可以从四个选项中选择答案。计时器:玩家有 30 秒的时间回答每个问题。生命线:玩家可以…

    2025年12月19日
    000
  • 如何开始 Web 开发

    介绍 Web 开发是当今最受欢迎的职业之一,对于那些对 前端(用户所看到的内容)和 后端(服务器逻辑)感兴趣的人来说)。如果您刚刚起步,想知道从哪里开始或者作为开发者可以赚多少钱,本指南将为您提供清晰的路径和入门资源。 什么是网页开发? 网络开发分为两大区域: 前端:网站的视觉和交互部分。包括: H…

    2025年12月19日
    000
  • 了解如何建立实时聊天

    在本教程中,我们将指导您使用 superviz 构建实时聊天应用程序。实时聊天是现代 web 应用程序的一项重要功能,它使用户能够即时相互通信。无论您是在构建协作平台、客户支持工具还是社交网站,添加实时聊天都可以增强用户交互和参与度。 我们将演示如何设置一个简单的聊天界面,参与者可以在其中实时发送和…

    2025年12月19日
    000
  • React Native 入门 (EXPO):初学者指南

    react native 已成为构建移动应用程序最流行的框架之一,使开发人员能够使用 javascript 和 react 为 ios 和 android 创建跨平台应用程序。 expo 通过提供一组工具和服务来简化 react native 开发,帮助您快速构建原型、构建和部署 react nat…

    2025年12月19日
    000
  • React 基础知识~样式组件/ inline_style

    内联样式必须用javascript编写。 ・属性名称必须是“style” ・无论是通过除以值来设置样式还是直接设置样式都没有区别。 ・属性必须以驼峰大小写书写,像这样的 fontweight: “bold”,. ・如果我们想用 css 样式(kebabcase)编写属性,我们…

    2025年12月19日
    000
  • Things I Wish I Knew When I Started with React

    3 年 react 开发的经验教训 当我第一次投入 react 时,感觉就像打开了潘多拉魔盒。有很多东西要学,一路上,我遇到了很多“啊哈!”的情况。时刻。以下是我希望在开始时就知道的 10 件事,以帮助您在 react 之旅中跳过一些减速带。 1. 组件只是函数 最重要的认识是什么? react 组…

    2025年12月19日
    000
  • 构建无障碍网站:最佳实践

    建立一个无障碍网站可确保您的内容可供所有人(包括残疾人)使用。可访问性不仅有助于使您的网站具有包容性,而且也是改善用户体验和遵守网络标准的关键因素。在本博客中,我们将探讨构建无障碍网站的最佳实践以及如何实施它们。 为什么可访问性很重要 包容性:全球有超过 10 亿人患有某种形式的残疾。无障碍网站可确…

    2025年12月19日
    000
  • js 如何设置高度

    在 JavaScript 中设置高度有以下几种方法:直接设置元素的 height 属性。使用 CSSOM 界面中的 offsetHeight 或 clientHeight 属性。使用 jQuery 中的 height() 方法。 如何在 JavaScript 中设置高度 直接设置元素的 height…

    2025年12月19日
    000
  • js中如何渲染

    在 JavaScript 中,渲染将数据转换为可视输出,通过 DOM 操作,包括数据获取、转换、DOM 操作、样式应用和事件处理。为了优化性能,可以使用虚拟 DOM、避免过度渲染、优化 DOM 结构和异步渲染等措施。 JavaScript 中的渲染 如何渲染? 在 JavaScript 中,渲染是指…

    2025年12月19日
    000
  • js如何如何获取li

    获取 li 元素有以下方法:使用 getElementById 获取具有唯一 id 的 li 元素。使用 getElementsByClassName 获取具有指定类名的 li 元素。使用 querySelector 根据 CSS 选择器获取 li 元素。使用 querySelectorAll 获取…

    2025年12月19日
    000
  • js如何发表情

    在 JavaScript 中发表情的方法有多种:使用内置的 emoji 包;使用第三方库(如 emojis-list);使用 HTML 实体;使用 CSS 图像属性。 如何在 JavaScript 中发表情 发表情是通过图像或符号来表达情绪的方式,广泛应用于网络聊天和社交媒体。JavaScript …

    2025年12月19日
    000
  • js中如何showhide

    在 JavaScript 中,可以通过控制 CSS 属性来显示或隐藏元素:显示元素:使用 document.getElementById(“elementId”).style.display = “block”;隐藏元素:使用 document.get…

    2025年12月19日
    000
  • 流场屏幕

    使用 vanilla js 和 html canvas 的动态流场 您是否曾被抽象粒子动画迷住过?这些流动、动态的视觉效果可以通过使用纯 javascript 和 html canvas 元素的极其简单的技术来实现。在本文中,我们将分解创建一个流场的过程,该流场为数千个粒子提供动画,让它们自然运动。…

    好文分享 2025年12月19日
    000
  • js如何取消js效果

    有六种方法可以取消 JavaScript 效果:1. 禁用浏览器 JavaScript;2. 使用“nojavascript”类;3. 使用 JavaScript 代码;4. 使用 Greasemonkey 脚本;5. 使用 Tampermonkey 脚本;6. 手动修改页面源代码。但需注意禁用 J…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信