仿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://test.idctop.com/article/483474.html

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

相关推荐

  • IIS域名隐藏端口号的方法是什么?,隐藏组件怎么设置?

    在IIS中隐藏域名端口号和隐藏组件,核心方法是通过修改站点绑定、部署反向代理或调整HTTP响应头, 这样做不仅能提升URL的整洁度,还能降低服务器暴露的风险,是网站运维中的基础安全操作,为什么要隐藏端口号和组件多数网站默认使用80或443端口,但开发环境或特殊场景下常需要指定非标准端口,如果用户访问时必须输入端……

    2026年8月5日
    500
  • 服务器租用和托管怎么选?服务器租用托管价格及注意事项

    服务器租用适合追求快速上线且无运维团队的企业,而服务器托管则更适合拥有成熟技术团队、希望长期控制硬件成本的大型业务,两者核心差异在于资产归属与运维责任的分担,在数字化转型的深水区,选择基础设施不再是简单的“买机器”或“租机器”的二选一,而是一场关于成本结构、技术掌控力与业务扩展性的精密计算,很多企业在初期往往因……

    2026年7月5日
    12800
  • IPv6双栈的正确开启方法是什么,需要注意什么?

    IPv6双栈是在网络设备上同时启用IPv4和IPv6协议栈,实现两种协议共存和平滑过渡,开启双栈需要网络运营商、路由器、终端设备同步支持,现阶段多数操作系统默认开启,路由器端需手动配置,IPv6双栈如何开启?从路由器到终端的完整配置双栈的本质是让设备同时拥有IPv4和IPv6地址,既能访问传统IPv4网站,也能……

    2026年8月10日
    900
  • it运维服务_运维服务扩容

    IT运维服务扩容不是简单地加服务器或买带宽,而是围绕业务增长进行的系统性能力升级,其核心路径是:先诊断现状、再定方案、最后分步实施,很多企业等到系统频繁告警才想起扩容,此时往往已经影响了业务,本文从触发信号、操作流程、方案对比、成本考量四个维度,把运维服务扩容这件事讲透,运维服务扩容怎么做:先回答三个问题运维服……

    2026年8月17日
    500
  • 大模型ROUGE评测指标是什么?如何计算ROUGE评分

    ROUGE评测指标是衡量大模型生成文本与参考文本重叠程度的自动化评估方法,核心通过计算召回率、精确率和F1值来量化生成内容的质量,在自然语言处理领域,尤其是大语言模型(LLM)的落地应用中,如何客观、高效地评估生成结果的好坏,始终是一个核心痛点,人工评估虽然准确,但成本高昂且难以规模化;而ROUGE(Recal……

    2026年6月21日
    2210
  • 服务器托管翻译是什么意思,怎么选择服务商?

    服务器托管翻译服务是确保跨国托管合同、SLA和技术文档在语言转换中保持法律效力和技术准确性的必要环节,直接关系到企业海外业务的合规与稳定,为什么服务器托管需要专业翻译当企业选择将服务器托管到海外数据中心,或与国外IDC供应商合作时,语言障碍往往成为第一个隐性风险,托管合同中的服务等级协议、责任划分、赔偿条款,以……

    2026年7月22日
    400
  • 大模型RoPE外推技术是什么?大模型RoPE外推原理详解

    RoPE外推是解决大模型在训练时未见过超长上下文时,依然能保持逻辑连贯和位置感知能力的核心技术,它通过数学修正让模型“学会”处理比训练数据更长的文本序列,想象一下,你训练一只狗识别“苹果”和“香蕉”,但从未教过它“榴莲”,当它第一次见到榴莲时,可能会困惑,大模型也是如此,它在训练阶段主要接触的是固定长度(如4K……

    2026年6月21日
    1900
  • 服务器配置参数有哪些?,选择时要注意什么?

    服务器配置参数是决定服务器性能的核心指标,选型时需根据业务场景权衡CPU、内存、硬盘和带宽,配置并非越高越好,匹配需求才是关键,服务器配置参数怎么看?先从CPU核心数说起当你面对一台服务器时,第一个想了解的通常是它的计算能力,CPU配置参数包括核心数、线程数、主频和缓存,这些参数直接决定了服务器能处理多复杂的任……

    2026年7月26日
    300
  • IDEA的JDBCMySQL数据库怎么配置?,连接不上怎么办

    IDEA连接MySQL数据库,核心就三步:导入驱动JAR包、配置JDBC URL、写代码验证连接,许多人卡在驱动版本不匹配或时区参数遗漏上,本文按实战顺序拆解全部细节,并附IDEA自带数据库工具的替代方案,IDEA连接MySQL数据库失败的常见原因先聊最头疼的部分,IDEA里连不上MySQL,八成问题出在驱动版……

    AI资讯 2026年8月9日
    300
  • 分布式缓存服务怎样用?分布式缓存服务选型与配置指南

    分布式缓存服务通过内存存储高频数据,显著降低数据库负载并提升响应速度,是构建高并发、低延迟现代应用架构的核心基础设施,想象一下,你的网站就像一家繁忙的餐厅,数据库是后厨,负责处理所有复杂的烹饪工作;而分布式缓存就是前台的取餐台,把最热门、最常被点的一道菜提前摆好,当顾客(用户)再来点这道菜时,直接从取餐台拿走……

    2026年7月5日
    12300

发表回复

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