JavaScript实现环绕鼠标旋转效果

yizhihongxing

JavaScript实现环绕鼠标旋转效果的过程可以分为以下几个步骤:

  1. 确定旋转的中心点
  2. 监听鼠标移动事件
  3. 计算鼠标位置和中心点的夹角
  4. 将计算出来的夹角应用到旋转的元素上,使其旋转

以下是两个示例说明:

示例1:使用CSS3 transform属性实现环绕鼠标旋转

HTML结构:

<div class="wrap">
  <div class="box"></div>
</div>

CSS代码:

.wrap {
  width: 300px;
  height: 300px;
  position: relative;
}

.box {
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: red;
  border-radius: 50%;
  transition: transform 0.3s ease-out;
}

JavaScript代码:

var wrap = document.querySelector('.wrap');
var box = document.querySelector('.box');

wrap.addEventListener('mousemove', function(e) {
  var mouseX = e.clientX;
  var mouseY = e.clientY;
  var centerX = wrap.offsetLeft + wrap.offsetWidth / 2;
  var centerY = wrap.offsetTop + wrap.offsetHeight / 2;
  var angle = Math.atan2(mouseY - centerY, mouseX - centerX) * 180 / Math.PI;
  box.style.transform = 'translate(-50%, -50%) rotate(' + angle + 'deg)';
});

示例2:使用canvas绘制图形实现环绕鼠标旋转

HTML结构:

<canvas id="canvas"></canvas>

JavaScript代码:

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var centerX = canvas.width / 2;
var centerY = canvas.height / 2;
var radius = 50;

canvas.addEventListener('mousemove', function(e) {
  var mouseX = e.clientX;
  var mouseY = e.clientY;
  var angle = Math.atan2(mouseY - centerY, mouseX - centerX);
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.beginPath();
  ctx.arc(centerX, centerY, radius, angle - Math.PI / 2, angle + Math.PI / 2);
  ctx.lineTo(centerX, centerY);
  ctx.fillStyle = 'red';
  ctx.fill();
});

在这个示例中,我们使用canvas绘制了一个半圆,并且将鼠标指向的位置和canvas中心点的夹角应用到了绘制图形的角度上,以达到环绕鼠标旋转的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现环绕鼠标旋转效果 - Python技术站

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

相关文章

  • javascript开发技术大全 第2章 开始JAVAScript之旅

    “javascript开发技术大全 第2章 开始JAVAScript之旅” 是一本 JS 入门的好书,本章分为以下7部分: Javascript简介:介绍什么是JavaScript,学习JS的必要性以及什么是JS的应用领域。 JS基础:介绍JS的基本语法,变量和表达式,流程控制,数据类型和自定义函数。 DOM操作:介绍DOM的结构和功能,如何选择和操作页面元…

    JavaScript 2023年5月17日
    00
  • js数组的五种迭代方法及两种归并方法(推荐)

    下面是关于“js数组的五种迭代方法及两种归并方法”的详细讲解: 1. 前言 在JavaScript中,数组是一种非常常见的数据类型。对于数组的操作,我们既可以使用循环遍历,也可以使用数组提供的方法进行处理。本文主要介绍 js 数组的五种迭代方法及两种归并方法。这些方法要熟练掌握,能够帮助我们高效地处理数组。 2. 迭代方法 2.1 forEach forEa…

    JavaScript 2023年5月27日
    00
  • JavaScript中的E-mail 地址格式验证

    对于JavaScript中的E-mail 地址格式验证,我们可以从以下几个方面进行讲解。 1. E-mail地址的合法性 一个合法的E-mail地址应当包含“@”符号,且“@”符号前后应当至少包含一个字符,并且“@”符号后应当包含一个“.”符号。另外,E-mail地址中不允许出现空格、制表符和换行符等空白符号。 在JavaScript中,我们可以使用正则表达…

    JavaScript 2023年5月19日
    00
  • JavaScript window.setTimeout() 的详细用法

    JavaScript window.setTimeout() 的详细用法 在 JavaScript 中,window.setTimeout() 方法可以定时执行一个指定的代码块。它接收两个参数,分别是需要执行的代码块和执行时间(单位为毫秒)。 语法 window.setTimeout(code, delay); 其中,code 为需要执行的代码块;delay…

    JavaScript 2023年6月11日
    00
  • javascript 事件对象 坐标事件说明

    “javascript 事件对象 坐标事件说明”是一个非常重要的主题,它关乎到网页中处理与用户的鼠标或者键盘交互相关的操作。在这个主题中,可以学习到如何获取事件对象,以及如何处理不同类型的坐标事件,例如鼠标的点击、移动或者键盘的按下事件等等。下面我们一起来详细讲解一下这个主题。 获取事件对象 在JavaScript中,处理事件需要获取事件对象,然后通过事件对…

    JavaScript 2023年6月10日
    00
  • JavaScript中块级作用域与函数作用域深入剖析

    JavaScript中块级作用域与函数作用域深入剖析 在JavaScript中,作用域是指在程序中可以直接访问变量的区域。JavaScript中常见的两种作用域是块级作用域和函数作用域。本文将深入讲解JavaScript中块级作用域和函数作用域的内部原理。 块级作用域 块级作用域指定义在代码块内部的变量和函数。在ES6之前,JavaScript并没有块级作用…

    JavaScript 2023年6月10日
    00
  • JS 页面计时器示例代码

    下面是关于“JS 页面计时器示例代码”的完整攻略。 什么是 JS 页面计时器 JS 页面计时器是一种用于计时的 JS 脚本,可以在页面中实现各种计时功能,比如倒计时、时长计算等。在开发网站时,经常需要使用页面计时器来实现各种功能,因此学习和掌握 JS 页面计时器是非常重要的。 JS 页面计时器示例代码 下面是一个简单的 JS 页面计时器示例代码: let t…

    JavaScript 2023年5月27日
    00
  • Javascript 高阶函数使用介绍

    Javascript高阶函数使用介绍 在Javascript中,高阶函数是指能够接受一个或多个函数作为参数,或者将函数作为返回值的函数。通过使用高阶函数,我们可以更好地组织我们的代码,使其更加灵活和可复用。下面将详细介绍Javascript高阶函数的几种常见用法。 将函数作为参数传入另一个函数 使用函数作为另一个函数的参数是高阶函数中最基本的用法之一。例如我…

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