首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js代码鼠标跟随粒子特效

基础概念: 鼠标跟随粒子特效是一种常见的网页交互效果,它通过JavaScript和CSS实现,使得页面上的粒子元素能够跟随鼠标指针移动,从而增强用户的交互体验。

优势

  1. 增强互动性:使用户感觉页面更加生动和有趣。
  2. 视觉吸引力:吸引用户的注意力,提升用户体验。
  3. 技术展示:展示开发者的技术能力。

类型

  • 简单跟随:粒子直接跟随鼠标移动。
  • 平滑跟随:粒子以一定的速度和加速度平滑地跟随鼠标。
  • 复杂轨迹:粒子根据特定的算法(如贝塞尔曲线)跟随鼠标。

应用场景

  • 网站首页:作为背景特效提升视觉效果。
  • 游戏界面:增加游戏的互动性和趣味性。
  • 广告页面:吸引用户注意力,提高广告效果。

示例代码: 以下是一个简单的鼠标跟随粒子特效的JavaScript和HTML/CSS代码示例:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mouse Follow Particles</title>
<style>
  body {
    margin: 0;
    overflow: hidden;
  }
  .particle {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #ff0000;
    pointer-events: none;
  }
</style>
</head>
<body>
<script>
  const numParticles = 50;
  const particles = [];

  class Particle {
    constructor() {
      this.x = 0;
      this.y = 0;
      this.size = Math.random() * 5 + 5;
      this.speedX = Math.random() * 3 - 1.5;
      this.speedY = Math.random() * 3 - 1.5;
      this.element = document.createElement('div');
      this.element.className = 'particle';
      this.element.style.width = `${this.size}px`;
      this.element.style.height = `${this.size}px`;
      document.body.appendChild(this.element);
    }

    update(mouse) {
      const dx = mouse.x - this.x;
      const dy = mouse.y - this.y;
      const distance = Math.sqrt(dx * dx + dy * dy);
      const forceDirectionX = dx / distance;
      const forceDirectionY = dy / distance;
      const maxDistance = 100;
      const force = (maxDistance - distance) / maxDistance;
      const directionX = forceDirectionX * force * 10;
      const directionY = forceDirectionY * force * 10;

      if (distance < maxDistance) {
        this.x -= directionX;
        this.y -= directionY;
      }

      this.x += this.speedX;
      this.y += this.speedY;

      this.element.style.left = `${this.x}px`;
      this.element.style.top = `${this.y}px`;
    }
  }

  for (let i = 0; i < numParticles; i++) {
    particles.push(new Particle());
  }

  document.addEventListener('mousemove', (event) => {
    const mouse = { x: event.clientX, y: event.clientY };
    particles.forEach(particle => particle.update(mouse));
  });
</script>
</body>
</html>

常见问题及解决方法

  1. 性能问题:如果页面上的粒子数量过多,可能会导致页面卡顿。可以通过减少粒子数量或使用requestAnimationFrame优化动画性能。
  2. 性能问题:如果页面上的粒子数量过多,可能会导致页面卡顿。可以通过减少粒子数量或使用requestAnimationFrame优化动画性能。
  3. 粒子重叠:粒子之间可能会发生重叠,影响视觉效果。可以通过增加粒子的随机性或调整粒子的移动速度来避免重叠。
  4. 边界处理:粒子可能会移出视口边界。可以通过检测粒子的位置并限制其在视口内来解决。
  5. 边界处理:粒子可能会移出视口边界。可以通过检测粒子的位置并限制其在视口内来解决。

通过以上方法,可以有效实现并优化鼠标跟随粒子特效。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

❤️创意网页:HTML5,canvas创作科技感粒子特效(科技感粒子、js鼠标跟随、粒子连线)

科技感粒子特效网页 在本篇技术博客中,我们将学习如何创建一个令人赞叹的科技感粒子特效网页。...这个特效网页将会展示一个动态的、精美的粒子效果,同时会随着鼠标的移动而产生连线效果,增添一份炫酷的科技氛围。我们将使用HTML、CSS和JavaScript来实现这个效果。...动态图展示 静态图展示 图1 图2 视频展示 HTML5粒子连接 项目代码解析 HTML 结构 首先,我们来看一下HTML结构。代码中只有一个元素,这是我们用来绘制粒子特效的画布。...这里使用了标签将JavaScript代码嵌入到HTML中。代码的主要功能包括: 创建粒子和连线的类。 初始化粒子数组,并在画布上绘制粒子。...根据鼠标的位置更新粒子的运动状态,并绘制粒子之间的连线。 实现动画效果,使粒子和连线随着时间不断更新。 ​

2.1K10
  • jQuery特效 | 导航底部横线跟随鼠标缓动

    HTML5学堂(码匠):jQuery来实现如下特效 - 在导航底部存在一条横线,跟随着鼠标缓动到相应导航项底部。...今天就针对该特效来说说如何开发(本次内容使用jQuery进行讲解,原生JavaScript代码下周一奉上) 功能效果图 ?...功能需求明确 横向导航条; 当鼠标移入导航区域的时候,在当前导航底部淡入一个横线; 当鼠标在导航区域当中左右移动时,横线跟随鼠标移动; 当鼠标移出导航区域的时候,横线淡出。...导航跟随 - 实现 结构分析 在此功能当中,核心在于结构的搭建,导航底部的横线能够来回运动,那么该横线必然需要定位到当前导航当中,因此可以确定如下的结构代码 ?...关于完整代码 如需查看完整代码,请前往:http://codepen.io/majiang/pen/zZGdKW (有可能因为网络原因,导致加载速度较慢)。

    8.7K50

    个人博客主题模板给鼠标添加跟随特效教程

    昨天写了一个网页鼠标特效的小玩具,当然代码不是我的,源自知更鸟,插件也很简单,但是考虑到不是所有人都喜欢用插件,包括我自己,所以今天抽空在写一个详细的教程,直接把代码写在主题里就不需要额外的开启插件了,...一般主题模板都有预留自定义css和统计代码接口,我们需要用这两个接口实现鼠标特效,为什么不直接在主题模板中修改,因为修改源代码之后我们再次更新会导致主题模板恢复,那么我们修改的代码就没有了,还得重新添加...因为我在本地测试的时候发现,在移动端打开页面之后这个特效的鼠标会默认的停留在顶部左侧的位置,所以我就隐藏了,喜欢保留的可以删除最后那一段。...,把js代码放在footer中就可以了,看了下基本上不会跟主题的代码有任何的冲突,如果是修改源代码的话记得备份,免费出错导致网站出错。...PS:关于鼠标特效网上的教程也是五花八门的,但是总体来说都是为网站锦上添花的操作,我比较喜欢简介的,所以没设置一些花里胡哨的特效,会让我觉得喧宾夺主,好了,仅是个人看好,这次教程文章完成了,继续更新主题模板啦

    73250

    个人博客主题模板给鼠标添加跟随特效教程

    昨天写了一个网页鼠标特效的小玩具,当然代码不是我的,源自知更鸟,插件也很简单,但是考虑到不是所有人都喜欢用插件,包括我自己,所以今天抽空在写一个详细的教程,直接把代码写在主题里就不需要额外的开启插件了,...一般主题模板都有预留自定义css和统计代码接口,我们需要用这两个接口实现鼠标特效,为什么不直接在主题模板中修改,因为修改源代码之后我们再次更新会导致主题模板恢复,那么我们修改的代码就没有了,还得重新添加...因为我在本地测试的时候发现,在移动端打开页面之后这个特效的鼠标会默认的停留在顶部左侧的位置,所以我就隐藏了,喜欢保留的可以删除最后那一段。...,把js代码放在footer中就可以了,看了下基本上不会跟主题的代码有任何的冲突,如果是修改源代码的话记得备份,免费出错导致网站出错。...PS:关于鼠标特效网上的教程也是五花八门的,但是总体来说都是为网站锦上添花的操作,我比较喜欢简介的,所以没设置一些花里胡哨的特效,会让我觉得喧宾夺主,好了,仅是个人看好,这次教程文章完成了,继续更新主题模板啦

    81940

    ❤️创意网页:绚丽粒子炸裂特效①(真的超好看)超好看的粒子交互跟随效果~彩色随机粒子爆裂

    HTML5的元素提供了一个强大的绘图环境,结合JavaScript的动态特性,我们可以轻松实现各种视觉效果,例如粒子效果、动画和过渡效果等。...实现视觉效果震撼的网页 下面是一个简单的HTML文档,通过HTML5的元素和JavaScript代码,创建了一个令人惊叹的视觉效果。...该网页会在用户的鼠标移动时,产生绚丽多彩的粒子效果,为用户带来沉浸式的交互体验。 代码) JavaScript代码解析 JavaScript代码部分负责创建粒子效果和实现动画效果。...我们使用一个Particle类来表示每个粒子,每个粒子具有随机的大小、颜色和速度,使得粒子在画布上随机运动。

    24010

    原生JS | 导航底部横线跟随鼠标缓动

    功能效果 功能需求明确 横向导航条; 当鼠标在导航区域当中左右移动时,横线跟随鼠标移动。...鼠标跟随特效 结构分析 与jQuery实现方法当中使用的结构有所不同,为了更好的获取标签,所以使用如下代码结构: 样式处理 样式方面与此前没有什么变化,依旧使用定位的思路来实现,此处不再重复给出样式代码...,如果需要可以查看上一篇jQ特效文章(该文章底部有相应链接),或点击文章底部的“阅读原文”,查看源代码。...原生JS功能实现 功能代码解析 在该效果中,由于鼠标移入淡入或淡出的功能代码的原理与jQuery基本类似,所以不做重复书写,只实现导航底部跟随的效果。...数学对象 在JS当中,最小的单位为1像素,对于缓冲运动当中,所计算出的缓冲结果是存在小数的,这些小数需要计算为整数再做处理。

    7.2K81

    学习Particles.js 给网页来点粒子特效

    今天我们来学习一下particles.js Particles.js是一个开源的轻量级JavaScript库,它帮助你创建漂亮的交互式粒子效果。...它基于HTML5 canvas元素,能够在背景中生成动态的粒子效果。它可以通过调整不同的选项来定制化粒子形状、数量、大小、颜色、运动速度等等。...除此之外,particles.js 还支持响应式设计,可以让效果在不同的设备上呈现出不同的表现。...这个库非常适合用于网站、应用程序和其他数字媒体项目中,以增加互动的效果并吸引用户的注意力 官网地址:particles.js – 一个轻量级、无依赖性和响应迅速的 JavaScript 插件,用于粒子背景...(marcbruederlin.github.io) 先看效果 安装 使用npm npm install particlesjs —-save // 引入粒子 js import Particles from

    48310
    领券