已知10个点,用html/css/javas写一段完整的代码 ,实现先出现一个点再出现一个浮动箭头,再出现一个点,再出现一个浮动箭头,再出现一个点,以此类推

时间: 2024-04-16 21:30:07 浏览: 17
下面是一个使用 HTML、CSS 和 JavaScript 实现先出现一个点、再出现一个浮动箭头、再出现一个点的循环效果的完整代码示例: ```html <!DOCTYPE html> <html> <head> <style> .container { position: relative; height: 200px; width: 200px; } .dot { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 10px; height: 10px; background-color: black; border-radius: 50%; } .arrow { position: absolute; top: 50%; left: 50%; transform-origin: left center; width: 200px; height: 2px; background-color: black; } .arrow::before, .arrow::after { content: ""; position: absolute; width: 0; height: 0; } .arrow::before { border-style: solid; border-width: 8px 8px 0 0; border-color: transparent #000 transparent transparent; top: -8px; left: -8px; } .arrow::after { border-style: solid; border-width: 8px 8px 0 0; border-color: transparent #fff transparent transparent; top: -6px; left: -6px; } </style> </head> <body> <div class="container"> </div> <script> window.addEventListener('DOMContentLoaded', (event) => { const container = document.querySelector('.container'); const points = [ { x: 50, y: 50 }, { x: 150, y: 50 }, { x: 150, y: 150 }, { x: 50, y: 150 }, { x: 100, y: 100 }, { x: 50, y: 50 }, { x: 150, y: 50 }, { x: 150, y: 150 }, { x: 50, y: 150 }, { x: 100, y: 100 } ]; let index = 0; function createDot(x, y) { const dot = document.createElement('div'); dot.classList.add('dot'); dot.style.left = `${x}px`; dot.style.top = `${y}px`; container.appendChild(dot); } function createArrow(x1, y1, x2, y2) { const arrow = document.createElement('div'); arrow.classList.add('arrow'); const angle = Math.atan2(y2 - y1, x2 - x1); const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); arrow.style.transform = `translate(${x1}px, ${y1}px) rotate(${angle}rad)`; arrow.style.width = `${distance}px`; container.appendChild(arrow); } function animate() { const point1 = points[index]; const point2 = points[index + 1]; createDot(point1.x, point1.y); if (point2) { setTimeout(() => { createArrow(point1.x, point1.y, point2.x, point2.y); setTimeout(() => { createDot(point2.x, point2.y); index++; animate(); }, 1000); }, 1000); } else { index = 0; setTimeout(animate, 1000); } } animate(); }); </script> </body> </html> ``` 这段代码会按照预定义的点的坐标顺序,循环地先出现一个点,再出现一个浮动箭头,再出现一个点的效果。通过 JavaScript 的 `setTimeout` 函数和递归调用 `animate` 函数来控制元素的出现时间和循环效果。你可以将这段代码复制到一个 HTML 文件中,然后在浏览器中打开该文件查看效果。

相关推荐

最新推荐

recommend-type

javascript 控制 html元素 显示/隐藏实现代码

1。编写js函数 [removed] function display(y){$(y).style.... 要显示/隐藏的html元素加上 id 属性 &lt;table&gt; ”menu”&gt; 控制这个tr的显示/隐藏&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; 3,添加按钮,链接等触发 js 函数 &lt;input type=”b
recommend-type

javascript实现一个网页加载进度loading

loading随处可见,比如一个app经常会有下拉刷新,上拉加载的功能,在刷新和加载的过程中为了让用户感知到 load 的过程,我们会使用一些过渡动画来表达。最常见的比如“转圈圈”,“省略号”等等。 网页loading有很多...
recommend-type

javascript发送短信验证码实现代码

本文首先分析手机发送验证码的原理,再对javascript发送短信验证码予以实现,具体思路如下: 实现点击“发送验证码”按钮后,按钮依次显示为“59秒后重试”、“58秒后重试”…直至倒计时至0秒时再恢复显示为“发送...
recommend-type

javascript使用Blob对象实现的下载文件操作示例

本文实例讲述了javascript使用Blob对象实现的下载文件操作。分享给大家供大家参考,具体如下: Blob对象 前言 环境 操作 总结 Blob是一个类文件的不可变的原始数据对象,非javascript原生数据类型,File对象...
recommend-type

用javascript实现点击链接弹出图片另存为而不是直接打开

&lt;iframe height=”0″ width=”0″ src=”/images/logo.gif” name=”saveImage” id=”saveImage”&gt;&lt;/iframe&gt; &lt;a&gt;Click Me&lt;/a&gt;
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。