iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript如何实现环绕鼠标旋转效果
  • 508
分享到

JavaScript如何实现环绕鼠标旋转效果

2023-06-26 05:06:22 508人浏览 八月长安
摘要

今天就跟大家聊聊有关javascript如何实现环绕鼠标旋转效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JavaScript是什么js是JavaScript的简称,它是一种直译

今天就跟大家聊聊有关javascript如何实现环绕鼠标旋转效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

JavaScript是什么

js是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于WEB开发,可以给网站添加各种各样的动态效果,让网页更加美观。


JavaScript实现环绕鼠标旋转效果:

<!DOCTYPE html><html lang="en"> <head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta Http-equiv="X-UA-Compatible" content="ie=edge">    <title>canvas Resize</title>    <style type="text/CSS">                *{            margin: 0;            padding:0        }        html,body{                        width: 100%;            height: 100%;        }    </style></head> <body>    <!-- canvas可以书写内容 但是只会在浏览器不显示canvas时才会显示书写的内容 -->    <canvas></canvas>    <script src="js/javascript.js"></script></body> </html>

js:

//以前封装的函数 直接从工具库中复制过来的 function getRandom(a, b){    return Math.floor(Math.random() * Math.abs(a - b)) + Math.min(a, b)}function getColor(){    var color = '#'    for(var i=0;i<3;i++){        var hex = getRandom(0, 256).toString(16)        color += hex.length === 1 ? '0' + hex : hex;    }    return color}//获取随机数 但是不取整function randomDoubleFromRange(a,b) {    return Math.random() * (Math.abs(a - b)) + Math.min(a, b);} //设置鼠标的位置 先设置为window的中心var mouse = {    x: window.innerWidth / 2,    y: window.innerHeight / 2} //创建鼠标移动的事件监听事件  监听鼠标所在window中的实时位置window.addEventListener('mousemove', function (window) {    //给数组中的x和y修改值    mouse.x = window.clientX;    mouse.y = window.clientY;}); //当窗口大小发生改变时 重新获取画布宽高并且重置代码 resize事件在窗口大小变化时触发window.addEventListener('resize', function () {    //window的可用窗口大小 包含了滚动条的区域大小    canvas.width = window.innerWidth;    canvas.height = window.innerHeight;    init();}); //获取页面上的canvasvar canvas = document.querySelector('canvas'); //设置canvas的大小为window大小 如果不设置 就使用默认宽高300*150canvas.width = window.innerWidth;canvas.height = window.innerHeight; //设置canvas绘画的环境 语法Canvas.getContext(contextID) 现在版本只能写参数2d 以后可能会支持3Dvar ctx = canvas.getContext('2d'); //封装一个制造环绕鼠标的小球的函数 参数是小球圆心在x轴的位置 在y轴的位置 小球半径 小球填充颜色function Particle(x, y, radius, color) {    //小球中心点的x轴位置    this.x = x;    //小球中心点的y轴位置    this.y = y;    //小球半径    this.radius = radius;    //小球颜色    this.color = color;    //小球转动的弧度值 不取整 如果取整 就少了很多数字 很多小球都会重叠    this.theta = randomDoubleFromRange(0, 2 * Math.PI);    //小球绕中心点转动的速度    this.speed = 0.05;    //小球距离中心点的距离    this.distance = getRandom(70, 90);    //小球跟随鼠标移动的速度    this.dragSpeed = 0.05;    //记录鼠标移动前鼠标的位置    this.lastMouse = {        x: x,        y: y    };    //绘制函数    this.draw = function (lastPosition) {        //重置当前路径 因为创建的每一个路径都会以上一个beginPath之后的所有路径作为基础绘制 会把之前所有线条的颜色全部绘制成和最后一个线条相同的一个颜色        ctx.beginPath();        //将小球颜色作为填充颜色        ctx.strokeStyle = this.color;        //将小球半径作为路径宽度        ctx.lineWidth = this.radius;        //路径起始位置        ctx.moveTo(lastPosition.x, lastPosition.y);        //路径结束位置        ctx.lineTo(this.x, this.y);        //绘制确切路径        ctx.stroke();        //关闭路径 不是结束路径 而是从结束点创建一条线连接到起始点 使路径闭合        ctx.closePath();    }     //更新数据的函数    this.update = function () {        //创建lastPosition对象接收上一次鼠标的x和y的值        var lastPosition = {            x: this.x,            y: this.y        }         //每次调用函数移动鼠标当前位置和上一次位置之间的dragSpeed = 0.05的距离 产生拖拽感觉        this.lastMouse.x += (mouse.x - this.lastMouse.x) * this.dragSpeed;        this.lastMouse.y += (mouse.y - this.lastMouse.y) * this.dragSpeed;         //更新小球当前位置 因为每一次调用小球的旋转角度不同导致其位置不同        this.x = this.lastMouse.x + Math.cos(this.theta) * this.distance;        this.y = this.lastMouse.y + Math.sin(this.theta) * this.distance;         //更新小球的角度值        this.theta += this.speed;        //将参数传递给绘制函数绘制路径        this.draw(lastPosition);    }} //定义particles变量var particles; //初始化函数function init() {    // 每次调用这个函数都要先把数组内容清空 因为使用这个函数除了打开网页后第一次代表调用之外 别的调用都表示窗口大小发生了改变 参数发生了变化 为了修改窗口大小之后又因为调用该函数导致小球重复创建 所以要调用后先清空再创建    particles = [];    // 绘制50个小球    for (var i = 0; i < 50; i++) {        //获取随机的颜色        let color = getColor()        //将构造函数创造的小球添加到数组中        particles.push(new Particle(canvas.width / 2, canvas.height / 2, 3, color));    }} function animate() {    //定时的调用这个函数 类似于setInterval 但是setInterval时间间隔不是很准确 requestAnimationFrame固定为以每秒60次的频率调用一次括号内的函数    requestAnimationFrame(animate);     // 每一帧都给之前的帧蒙上一层白色透明的矩形 用以清除上一帧绘制的路径    //填充矩形颜色 矩形背景颜色 透明度设置为0.1 可以使之前几帧的路径因为多次覆盖慢慢边淡 只是会在背景上留下很淡的痕迹 如果直接使用rgb白色覆盖 虽然没有痕迹残留 但是之前路径直接被白色覆盖 没有拖尾效果    // ctx.fillStyle = 'rgb(255, 255, 255)';    ctx.fillStyle = 'rgba(255, 255, 255, 0.1)';    //绘制矩形 给window绘制一个等高等宽的矩形 以此制造一个渐变的效果    ctx.fillRect(0, 0, canvas.width, canvas.height);     //对键名遍历数组 获取canvas.width / 2, canvas.height / 2, 3, color参数 每遍历一次就调用一次update函数 将获取到的参数作为实参传递给update函数    for (var p of particles) {        p.update();    }} //初始化 创建小球init();//开始动画animate();

看完上述内容,你们对JavaScript如何实现环绕鼠标旋转效果有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: JavaScript如何实现环绕鼠标旋转效果

本文链接: https://www.lsjlt.com/news/307200.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实现环绕鼠标旋转效果
    本文实例为大家分享了JavaScript实现环绕鼠标旋转效果的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"&g...
    99+
    2022-11-12
  • JavaScript如何实现环绕鼠标旋转效果
    今天就跟大家聊聊有关JavaScript如何实现环绕鼠标旋转效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JavaScript是什么JS是JavaScript的简称,它是一种直译...
    99+
    2023-06-26
  • CSS如何实现鼠标上移图标旋转效果
    这篇文章主要介绍了CSS如何实现鼠标上移图标旋转效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。鼠标上移图标旋转效果在企业的项目中经常会使用到,特别是顶部导航栏,比如:接下...
    99+
    2023-06-08
  • css如何实现鼠标移上去旋转效果
    本文将为大家详细介绍“css如何实现鼠标移上去旋转效果”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“css如何实现鼠标移上去旋转效果”能够给你意想不到的收获,请大家跟着小编的...
    99+
    2022-10-19
  • CSS3如何实现鼠标悬停360度旋转效果
    这篇文章将为大家详细讲解有关CSS3如何实现鼠标悬停360度旋转效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 方法:1、利用“元素:ho...
    99+
    2022-10-19
  • 如何使用CSS实现鼠标跟随3D旋转效果
    本篇内容介绍了“如何使用CSS实现鼠标跟随3D旋转效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!纯 CSS 实现元素的 3D 旋转如果不...
    99+
    2023-07-05
  • 用Unity实现使用鼠标旋转物体效果
    本篇内容主要讲解“用Unity实现使用鼠标旋转物体效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Unity实现使用鼠标旋转物体效果”吧!本文实例为大家分享了Unity使用鼠标旋转物体效果的...
    99+
    2023-06-20
  • css3如何实现圆环旋转效果
    本篇内容主要讲解“css3如何实现圆环旋转效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css3如何实现圆环旋转效果”吧! 方法...
    99+
    2022-10-19
  • css如何实现鼠标悬停元素逆时针旋转效果
    小编给大家分享一下css如何实现鼠标悬停元素逆时针旋转效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在css中,可以利用“:...
    99+
    2022-10-19
  • Android实现绕球心旋转的引导页效果
    现在很多APP都会出现Android实现绕球心旋转的引导页效果,一个类似小车一直在往前开的旋转式动画效果。 先看一下预览效果: 嗯,整体效果还算理想,基本实现了页面绕屏幕底...
    99+
    2022-06-06
    引导页 Android
  • 怎么用巧用CSS实现鼠标跟随3D旋转效果
    这篇文章主要讲解了“怎么用巧用CSS实现鼠标跟随3D旋转效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用巧用CSS实现鼠标跟随3D旋转效果”吧!纯 ...
    99+
    2022-10-19
  • JavaScript实现鼠标拖拽效果
    本文实例为大家分享了JavaScript实现鼠标拖拽效果的具体代码,供大家参考,具体内容如下 这次的效果图如下: 我认为这个实验的难点是保持盒子和鼠标的相对位置不变,通过鼠标按下和...
    99+
    2022-11-12
  • css如何实现文字环绕效果
    这篇文章主要讲解了“css如何实现文字环绕效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css如何实现文字环绕效果”吧! 方...
    99+
    2022-10-19
  • javascript如何实现鼠标悬停变色效果
    本篇文章给大家分享的是有关javascript如何实现鼠标悬停变色效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。javascript实现鼠...
    99+
    2022-10-19
  • 如何使用javascript实现鼠标框的效果
    鼠标框是一种常见的交互效果,在网页设计和开发中得到广泛应用。使用 javascript 实现鼠标框不仅可以增强用户体验,还可以为网页添加更多的交互效果。在本文中,我们将介绍如何使用 javascript 实现鼠标框的效果,向大家详细地介绍实...
    99+
    2023-05-14
  • 怎么使用CSS3实现旋转光环效果
    这篇文章主要介绍了怎么使用CSS3实现旋转光环效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.html框架<div class=...
    99+
    2022-10-19
  • css怎么实现收缩圆环旋转效果
    这篇文章主要介绍“css怎么实现收缩圆环旋转效果”,在日常操作中,相信很多人在css怎么实现收缩圆环旋转效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css怎么实现收缩圆环旋转效果”的疑惑有所帮助!接下来...
    99+
    2023-07-04
  • JavaScript实现div的鼠标拖拽效果
    本文实例为大家分享了JavaScript实现div鼠标拖拽效果的具体代码,供大家参考,具体内容如下 实现原理鼠标按下时根据onmousemove事件来动态获取鼠标坐标位置以此来更新d...
    99+
    2022-11-12
  • opencv如何实现图像旋转效果
    小编给大家分享一下opencv如何实现图像旋转效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!图像旋转:在opencv中首先根据旋转角度和中心获取旋转矩阵,然后根据旋转矩阵进行变换参数:实现代码:import ...
    99+
    2023-06-14
  • jquery如何实现div的旋转效果
    本篇内容介绍了“jquery如何实现div的旋转效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,在HTML中创建一个div元素:&l...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作