仿js特效代码怎么写?网页动态效果实现教程

“仿 JS 特效”通常指的是在前端开发中,通过 JavaScript 配合 CSS 实现的视觉交互效果,由于特效种类繁多,我将为你提供 4 种最经典、实用且易于理解的 JavaScript 特效代码示例,涵盖:

  1. 鼠标跟随光晕效果(炫酷背景)
  2. 打字机效果(文字动画)
  3. 滚动视差/淡入效果(页面滚动交互)
  4. 点击涟漪效果(Material Design 风格)

鼠标跟随光晕效果(Mouse Follow Glow)

效果描述:鼠标移动时,背景出现一个跟随鼠标的柔和光晕。

CSS + JS 实现页面滚动效果(内附源代码参考)
加载中
CSS + JS 实现页面滚动效果(内附源代码参考)
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">鼠标跟随光晕</title>
    <style>
        body {
            margin: 0;
            height: 100vh;
            background: #111;
            overflow: hidden;
            display: flex;
            justify-content: center;
            align-items: center;
            color: white;
            font-family: Arial, sans-serif;
        }
        .glow {
            position: fixed;
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(0, 255, 255, 0.3) 0%, rgba(0, 0, 0, 0) 70%);
            border-radius: 50%;
            pointer-events: none; / 让鼠标事件穿透 /
            transform: translate(-50%, -50%);
            z-index: -1;
            transition: transform 0.1s ease; / 轻微延迟让效果更平滑 /
        }
    </style>
</head>
<body>
    <h1>移动鼠标看看效果</h1>
    <div class="glow" id="glow"></div>
    <script>
        const glow = document.getElementById('glow');
        document.addEventListener('mousemove', (e) => {
            // 获取鼠标位置
            const x = e.clientX;
            const y = e.clientY;
            // 更新光晕位置
            glow.style.left = x + 'px';
            glow.style.top = y + 'px';
        });
    </script>
</body>
</html>

打字机效果(Typewriter Effect)

效果描述:文字逐个字符显示,类似打字机。

仿js特效代码怎么写?网页动态效果实现教程

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8">打字机效果</title> <style> body { background: #222; color: #0f0; font-family: 'Courier New', monospace; display: flex; justify-content: center; align-items: center; height: 100vh; font-size: 24px; } #typewriter { border-right: 2px solid #0f0; white-space: nowrap; overflow: hidden; animation: blink 0.7s step-end infinite; } @keyframes blink { 50% { border-color: transparent; } } </style> </head> <body> <span id="typewriter"></span> <script> const text = "你好,我是AI助手,我正在学习JavaScript特效!"; const element = document.getElementById('typewriter'); let index = 0; function typeWriter() { if (index < text.length) { element.innerHTML += text.charAt(index); index++; setTimeout(typeWriter, 100); // 每个字符间隔100ms } } // 页面加载后开始 window.onload = typeWriter; </script> </body> </html>

滚动淡入效果(Scroll Reveal)

效果描述:当元素进入视口时,逐渐显示(淡入+上移)。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">滚动淡入效果</title>
    <style>
        body {
            background: #f5f5f5;
            font-family: sans-serif;
            padding: 50px;
        }
        .reveal {
            opacity: 0;
            transform: translateY(50px);
            transition: all 0.8s ease-out;
            padding: 20px;
            margin: 20px 0;
            background: white;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }
        .spacer {
            height: 300px;
            background: #e0e0e0;
            margin: 20px 0;
            display: flex;

仿js特效代码怎么写?网页动态效果实现教程

justify-content: center; align-items: center; color: #666; } </style> </head> <body> <h1>向下滚动查看效果</h1> <div class="reveal">内容块 1</div> <div class="spacer">滚动到这里...</div> <div class="reveal">内容块 2</div> <div class="spacer">继续滚动...</div> <div class="reveal">内容块 3</div> <script> // 使用 Intersection Observer API(现代浏览器推荐) const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('active'); } }); }, { threshold: 0.1 // 元素出现10%时触发 }); document.querySelectorAll('.reveal').forEach(el => { observer.observe(el); }); </script> </body> </html>

点击涟漪效果(Click Ripple)

效果描述:点击按钮或元素时,从点击位置扩散出圆形波纹。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">点击涟漪效果</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background: #333;
        }
        .ripple-btn {
            position: relative;
            padding: 15px 40px;
            background: #007bff;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            overflow: hidden; / 关键:隐藏溢出 /
            font-size: 18px;
        }
        .ripple {
            position: absolute;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.6);
            transform: scale(0);
            animation: ripple-animation 0.6s linear;
            pointer-events: none;
        }
        @keyframes ripple-animation {
            to {
                transform: scale(4);
                opacity: 0;
            }
        }
    </style>
<

仿js特效代码怎么写?网页动态效果实现教程

/head> <body> <button class="ripple-btn" id="btn">点击我</button> <script> const btn = document.getElementById('btn'); btn.addEventListener('click', function(e) { // 创建涟漪元素 const ripple = document.createElement('span'); ripple.classList.add('ripple'); // 获取按钮尺寸和点击位置 const rect = btn.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); const x = e.clientX - rect.left - size / 2; const y = e.clientY - rect.top - size / 2; // 设置样式 ripple.style.width = ripple.style.height = `${size}px`; ripple.style.left = `${x}px`; ripple.style.top = `${y}px`; // 添加到按钮 btn.appendChild(ripple); // 动画结束后移除元素 ripple.addEventListener('animationend', () => { ripple.remove(); }); }); </script> </body> </html>

✅ 使用建议

特效类型 适用场景 性能提示
鼠标跟随 登录页、创意首页 避免频繁操作 DOM,使用 transformopacity
打字机 个人简介、加载提示 使用 setTimeoutrequestAnimationFrame
滚动淡入 长页面、产品展示 推荐使用 IntersectionObserver,性能优于 scroll 事件
点击涟漪 按钮、卡片交互 及时移除 DOM 元素,防止内存泄漏

🚀 进阶推荐库

如果你需要更复杂的特效,建议使用成熟库:

  • GSAP (GreenSock):最强大的动画库,适合复杂时间线动画。
  • Three.js:3D WebGL 特效。
  • Lottie:播放 After Effects 导出的 JSON 动画。
  • AOS (Animate On Scroll):轻量级滚动动画库。

需要我针对某个特效进行更深入的解释或定制吗?

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/483474.html

(0)
linux备份指令怎么用?linux系统数据备份方法
上一篇 2026年7月11日 21:48
百度网盘cdn是什么,百度网盘cdn加速怎么设置
下一篇 2026年7月11日 21:50

相关推荐

  • Linux服务器怎么配置?Linux服务器配置教程

    Linux服务器凭借极高的稳定性、安全性和极低的授权成本,已成为企业级应用、云计算底座及高并发场景的首选操作系统,其核心优势在于开源生态带来的灵活掌控力与长期的运维性价比,在数字化浪潮席卷全球的今天,选择一款合适的服务器操作系统,不再仅仅是技术团队的内部决策,而是直接影响业务连续性、数据安全以及IT预算的关键战……

    2026年7月6日
    10100
  • Linux复制命令有哪些?,cp命令怎么用

    在Linux系统中,复制文件或目录最核心的命令是cp,结合-r、-p、-a等参数可覆盖单文件、目录、权限保留、增量备份等所有本地复制需求,性能优于多数图形工具,linux cp命令详解:基础语法与常见参数cp命令是Linux系统管理员最常用的工具之一,据统计,超过70%的文件管理操作依赖cp完成,它的基础语法极……

    2026年7月15日
    1200
  • 服务器一键配置怎么操作?服务器一键配置教程

    服务器一键配置通过预置脚本或容器化技术,能在几分钟内完成环境部署,将传统数小时的运维工作压缩至分钟级,显著降低技术门槛并提升交付效率,为什么选择一键配置替代手动部署传统的手动搭建服务器环境,就像是在荒地上从零开始盖房子,你需要先打地基(安装操作系统),再砌墙(配置网络和安全组),接着铺水电(安装数据库、中间件……

    2026年7月8日
    5600
  • 分布式数据库有哪些分类?分布式数据库分类及特点

    分布式数据库并非单一产品,而是根据底层架构分为共享存储型、共享内存型和完全分布式三大类,企业选型需依据业务对一致性、扩展性及成本的具体需求进行匹配,在数字化转型的深水区,传统的单体数据库早已无法满足海量数据并发与灵活扩展的需求,分布式数据库作为解决这一痛点的核心基础设施,其内部流派众多,技术路线各异,理解这些分……

    2026年7月12日
    6700
  • 服务器br0网桥地址如何修改,修改后需要重启网络吗?

    修改服务器br0网桥地址,本质是调整Linux虚拟网桥的IP配置,核心操作包括临时修改和持久化写入配置文件,避免重启后配置丢失是关键,br0网桥地址修改方法详解br0网桥作为虚拟机和物理网络之间的桥梁,其IP地址修改直接关系到整个虚拟化环境的路由与连通,根据你的网络管理习惯,可以选择以下三种主流方式,每种方式对……

    2026年7月23日
    300
  • IB组网怎么安装驱动?,安装步骤是什么?

    在IB组网中,安装IB驱动虽然是可选步骤,但实际部署时,多数高性能场景强烈建议安装官方驱动,这样才能把InfiniBand网络的低延迟和高吞吐潜力完全释放出来,IB组网方案对比:官方驱动与系统自带驱动怎么选IB网络的高性能离不开驱动层的支持,目前主流的IB网卡,例如NVIDIA的ConnectX系列,在Linu……

    2026年8月16日
    500
  • 服务器如何接收短信,有哪些常见实现方法?

    服务器接收短信的核心是通过API接口或短信网关实现,常见方案包括HTTP接口、SDK集成和硬件猫池,具体选择取决于业务场景和预算,服务器接收短信怎么设置:从零到部署的完整流程确认业务需求与服务器环境在开始配置之前,先明确你打算用服务器接收短信做什么,是验证码登录、短信通知转发,还是用于短信营销效果跟踪,不同场景……

    2026年7月28日
    300
  • idc咨询的BCS的性能怎么样,值得买吗

    IDC咨询在行业研究领域具有权威性,但服务费用较高,适合预算充足的企业;BCS性能在数据存储与传输方面表现稳定,尤其适合国内部署场景,两者结合可提升整体IT策略的精准度,IDC咨询服务怎么样?从实际需求到价值评估IDC咨询的核心能力与局限IDC咨询依托数十年积累的市场数据库,能提供覆盖硬件、软件、服务、新兴技术……

    2026年8月5日
    500
  • 世界三大AI大模型究竟是谁?全球顶尖人工智能排名

    截至2026年,全球AI大模型竞争格局已稳固形成以OpenAI的GPT-4o、Anthropic的Claude 4以及Google的Gemini Ultra为首的“三足鼎立”态势,三者分别在通用智能、安全对齐与多模态原生能力上确立了行业标杆,全球AI大模型三巨头深度解析在2026年的技术语境下,讨论“世界三大a……

    2026年6月15日
    2610
  • 服务器本地建设还是云托管好?云服务器托管费用高吗

    2026年服务器选型的核心结论是:初创团队与个人开发者首选高性价比的云托管以规避运维成本,中大型企业及数据敏感型业务应坚持本地建设或混合云架构以保障数据主权与低延迟,而高并发互联网应用则需依托弹性云托管实现快速扩容,在数字化深入渗透的当下,选择服务器不再仅仅是购买一台硬件设备,而是选择一种业务支撑模式,很多新手……

    2026年7月3日
    1000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注