javascript动画之圆形运动,环绕鼠标运动作小球

JavaScript动画之圆形运动

在JavaScript中,通过使用CSS3的transform属性或canvas绘图API,可以实现圆形运动效果。接下来,我们以transform属性为例进行详细讲解。

示例1:物体沿圆形路径运动

  1. 首先,需要准备一个容器和一个要运动的物体。将其设置为圆形,如下所示:
<div id="container">
  <div id="ball"></div>
</div>

<style>
#container {
  width: 500px;
  height: 500px;
  border: 1px solid #ccc;
  border-radius: 50%;
  position: relative;
}

#ball {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: orange;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -25px;
}
</style>
  1. 然后,通过JavaScript代码来设置物体沿圆形路径运动的效果。
var container = document.getElementById('container');
var ball = document.getElementById('ball');

var radius = container.clientWidth / 2 - ball.clientWidth / 2; // 半径
var angle = 0; // 角度

setInterval(function() {
  var x = container.clientWidth / 2 + radius * Math.cos(angle);
  var y = container.clientHeight / 2 + radius * Math.sin(angle);

  ball.style.top = y - ball.clientHeight / 2 + 'px';
  ball.style.left = x - ball.clientWidth / 2 + 'px';

  angle += 0.01; // 每次增加的角度值,可根据实际情况调整
}, 16); // 每隔16毫秒执行一次
  1. 最后就可以看到物体沿圆形路径运动了。

示例2:环绕鼠标运动的小球

  1. 首先,准备一个容器和一个小球。
<div id="container2">
  <div id="ball2"></div>
</div>

<style>
#container2 {
  width: 500px;
  height: 500px;
  border: 1px solid #ccc;
  position: relative;
}

#ball2 {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: orange;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -25px;
  margin-left: -25px;
}
</style>
  1. 然后,通过JavaScript代码来设置小球环绕鼠标运动的效果。
var container2 = document.getElementById('container2');
var ball2 = document.getElementById('ball2');

container2.addEventListener('mousemove', function(ev) {
  var x = ev.clientX - container2.offsetLeft;
  var y = ev.clientY - container2.offsetTop;

  var left = x - ball2.clientWidth / 2;
  var top = y - ball2.clientHeight / 2;

  var r = Math.sqrt(Math.pow(container2.clientWidth / 2 - x, 2) + Math.pow(container2.clientHeight / 2 - y, 2)); // 小球到容器中心的距离
  var angle = Math.acos((x - container2.clientWidth / 2) / r);

  if (y > container2.clientHeight / 2) { // 鼠标在容器下半部分
    angle = Math.PI * 2 - angle;
  }

  ball2.style.left = left + r * Math.cos(angle) + 'px';
  ball2.style.top = top + r * Math.sin(angle) + 'px';
});
  1. 最后,运行代码,可以看到小球环绕鼠标运动的效果。

总结

通过以上两个示例,我们可以发现,实现圆形运动效果的核心代码是根据圆的参数方程计算物体的坐标,实现小球环绕鼠标运动的核心是根据三角函数计算物体的坐标。在实际开发中,可以根据具体场景选择使用哪种方式来实现圆形运动效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript动画之圆形运动,环绕鼠标运动作小球 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • Javascript读取上传文件内容/类型/字节数

    下面是Javascript读取上传文件内容/类型/字节数的完整攻略。 1. 读取上传文件类型 实现读取上传文件类型的方法,可以使用HTML5标准中的File API。通过File API,可以使用JS访问用户选择的本地文件。 以下是一个使用File API的示例代码: const fileInput = document.getElementById(‘fi…

    JavaScript 2023年5月27日
    00
  • JavaScript两种计时器的实例讲解

    下面是关于“JavaScript两种计时器的实例讲解”的完整攻略。 什么是计时器 计时器是一种常见的Web开发工具,可以在特定的时间间隔内执行某些代码或者动作。JavaScript提供了两种计时器:setInterval()和setTimeout()。 setInterval()和setTimeout()这两个函数都接受两个参数:一个是要执行的函数,另一个是…

    JavaScript 2023年5月27日
    00
  • JavaScript中常见获取元素的方法汇总

    我们来详细讲解一下“JavaScript中常见获取元素的方法汇总”。 一、通过ID获取元素 在JavaScript中获取元素的最基本的方式就是通过元素的ID来获取,通过这种方式可以获取HTML中的任何元素。使用document.getElementById()方法可以获取指定ID的元素。 示例代码: // 获取ID为“myButton”的button元素 v…

    JavaScript 2023年6月10日
    00
  • js 实现ajax发送步骤过程详解

    关于JS实现AJAX发送步骤过程的详解,可以从以下几个方面来说明: 一、AJAX请求的基本流程 在进行AJAX操作之前,我们需要先创建一个 XMLHttpRequest 对象。该对象主要用于在后台向服务器发出HTTP请求。 然后,设置 XMLHttpRequest 对象的一些属性,如请求类型、请求地址、传递的数据等。在设置完这些属性后,我们需要调用 XMLH…

    JavaScript 2023年6月11日
    00
  • JavaScript遍历数组的方法代码实例

    当我们需要对JavaScript中的数组进行遍历时,我们有多种方法来实现。接下来我会详细讲解几种常用的JavaScript遍历数组的方法以及相应的代码实例。 1. for循环 通过 for 循环,我们可以轻松地遍历 JavaScript 数组。 // 遍历数组 let arr = ["apple", "banana",…

    JavaScript 2023年5月27日
    00
  • js实现动态显示时间效果

    一、使用JavaScript获取当前时间 在JavaScript中,可以使用new Date()方法创建一个Date对象,该对象获取到的是当前电脑系统的时间。可以将该对象保存到一个变量中,用于后续操作。 示例代码: var currentTime = new Date(); 二、格式化时间 为了在页面中展示时间,需要对时间进行格式化。JavaScript提供…

    JavaScript 2023年5月27日
    00
  • javascript数组的使用

    JavaScript 数组是一种特殊的对象,用于存储多个值。它的索引是数字,从0开始递增,而不是像其他编程语言一样可以自定义。本文将详细介绍如何创建、访问、添加、删除、迭代和排序 JavaScript 数组。 创建 JavaScript 数组 有两种常用的创建 JavaScript 数组的方式: 括号表示法和构造函数表示法。 使用括号表示法进行JavaScr…

    JavaScript 2023年5月18日
    00
  • 浅析Bootstrap表格的使用

    浅析Bootstrap表格的使用 Bootstrap是一个流行的前端框架,提供了丰富的组件和样式。表格是一个必不可少的组件,本文将深入浅出地介绍Bootstrap表格的使用,包括如何创建基本表格、添加样式、排序、过滤和分页等。 创建基本表格 在Bootstrap中,我们可以使用<table>元素来创建表格。以下是一个最基本的表格结构: <t…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部