JavaScript实现环绕鼠标旋转效果

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日

相关文章

  • JS实现的相册图片左右滚动完整实例

    下面是关于“JS实现的相册图片左右滚动完整实例”的完整攻略。 一、前提准备 在实现相册图片左右滚动之前,需要先准备好图片: 准备好需要展示的图片,推荐使用图片大小相似的图片,可以增加用户体验。 把所有图片用一个ul包起来,这样便于控制整体样式和布局。 设置好ul和li的基础样式,如ul的宽度为图片宽度总和,li的宽度为单张图片宽度。 二、实现 实现相册图片左…

    JavaScript 2023年5月28日
    00
  • JavaScript编码风格指南(中文版)

    JavaScript编码风格指南(中文版)攻略 一、什么是编码风格指南? 编码风格指南是一份约定俗成的规范,用于统一团队内的代码编写风格,包括缩进、空格、命名规则等方面。编码风格指南的好处是可以让代码更加统一、易读、易维护,提高代码质量和开发效率。 二、为什么要使用编码风格指南? 统一团队内部的代码风格,减少开发者之间因个人习惯造成的差异,方便团队合作和代码…

    JavaScript 2023年6月10日
    00
  • JS分层架构低代码跨iframe拖拽示例详解

    本文主要介绍了一种基于JavaScript分层架构,低代码实现跨iframe拖拽(drag and drop)的示例。以下是完整攻略: 概述 JS分层架构是一种标准化组织JavaScript代码的方式,将代码按照功能分为不同的层,如数据层、业务逻辑层和UI层。采用此方式可以提高代码的可维护性和可扩展性。 低代码是一种可以供非专业人员使用的开发方式,它减少了编…

    JavaScript 2023年6月11日
    00
  • 详解javascript跨浏览器事件处理程序

    首先让我们来详细讲解“详解JavaScript跨浏览器事件处理程序”的完整攻略。 1. 为什么需要跨浏览器事件处理程序? 在不同的浏览器中,事件处理程序(比如click、mouseover等等)的调用方式可能不一样,比如IE浏览器使用attachEvent来绑定事件,而其他浏览器(比如Firefox、Chrome等)则使用addEventListener来绑…

    JavaScript 2023年5月27日
    00
  • javascript判断中文的正则

    下面是关于 JavaScript 判断中文的正则表达式攻略。 正则表达式简介 正则表达式是一种强大的字符串匹配工具,它使用一种类似于字符串的模式来描述、匹配和操作文本。 若要使用正则表达式判断中文,需要掌握正则表达式的基本语法和元字符。 字符(字符表达式):表示自身字符。 字符集合(字符类):表示某个字符集合内任意字符。 特殊字符:表示特殊含义的字符。 量词…

    JavaScript 2023年6月10日
    00
  • asp.net下模态对话框关闭之后继续执行服务器端代码的问题

    ASP.NET下模态对话框关闭之后继续执行服务器端代码的问题,可以通过以下方式实现: 1. 使用JavaScript和AJAX 在模态对话框中的“确认”或“取消”按钮中添加JavaScript代码,利用 AJAX 技术向服务器发送请求,通知服务器对话框已经被关闭,同时执行需要执行的服务器端代码。以下是示例代码: function CloseModal() {…

    JavaScript 2023年6月11日
    00
  • 一看就懂:jsonp详解

    一看就懂:jsonp详解 什么是JSONP JSONP(JSON with Padding)是一种跨域的数据交互方式。它利用了script标签没有跨域限制的特点,通过动态创建script标签来请求服务器返回数据,并通过回调函数来处理返回的数据。 JSONP的原理 在客户端动态创建一个script标签,其中的src属性指向服务器端数据接口,并在接口地址中指定回…

    JavaScript 2023年5月27日
    00
  • JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化 typeof的缺陷 在JavaScript中,typeof操作符用于检测一个变量或表达式的数据类型,返回一个字符串常量。 typeof variable typeof操作符返回的结果只有一下几种: “undefined”: 如果变量没有被赋值或者值为undefined “bo…

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