HTML怎么实现页面滚动动画 HTML基础效果应用【实操】

陌杰君_3564

陌杰君_3564

2026-05-19

461人浏览

原创

scroll-behavior: smooth 必须写在 html 元素上才生效,body 上无效;仅对原生锚点跳转和 scrollintoview() 有效,不支持 ie,safari 15.4+ 及主流现代浏览器可用。

html怎么实现页面滚动动画 html基础效果应用【实操】

scroll-behavior: smooth 必须写在 html 元素上

直接加在 body 上无效,这是最容易踩的坑。浏览器只认 html 根元素的 scroll-behavior 声明,body 或其他容器设了也白设。

生效范围仅限原生锚点跳转(如 <a href="#section1"></a>)和 element.scrollIntoView();window.scrollTo() 默认不走这个行为,除非显式传 { behavior: 'smooth' }。

  • IE 完全不支持,Edge 79+、Chrome 61+、Firefox 68+、Safari 15.4+ 可用
  • 若页面用了 transform 或 perspective,可能意外禁用平滑滚动
  • 不要和 overflow: hidden 同时作用于 html,会冲突

window.scrollTo() 加 { behavior: 'smooth' } 的兼容性陷阱

这个 API 在 Safari 15.4+ 才开始支持,老版本 Safari 会静默忽略 behavior 参数,直接硬跳。安卓 WebView 表现也不稳定,部分机型会卡顿或跳过动画。

建议加上降级逻辑:

Article To Html
Article To Html

文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。

下载
document.getElementById('back-to-top').addEventListener('click', () => {
  if ('scrollBehavior' in document.documentElement.style) {
    window.scrollTo({ top: 0, behavior: 'smooth' });
  } else {
    window.scrollTo(0, 0); // fallback to instant
  }
});
  • 别在滚动中反复触发,比如监听 scroll 事件里调用它,容易引发渲染抖动
  • 避免和 requestAnimationFrame 混用,除非你明确控制帧节奏
  • 若需精确控制滚动终点(比如避开固定 header),得手动计算 top 偏移量

滚动触发动画:用 IntersectionObserver 替代 scroll 事件监听

监听 scroll 事件做“滚动到某位置加样式”看似简单,但主线程压力大、易卡顿,尤其在低端设备上。现代方案是用 IntersectionObserver,它在渲染线程外运行,不阻塞页面。

例如让某个 <div class="fade-in"> 进入视口时淡入: <pre class="brush:php;toolbar:false;">const observer = new IntersectionObserver((entries) =&gt; { entries.forEach(entry =&gt; { if (entry.isIntersecting) { entry.target.classList.add('active'); observer.unobserve(entry.target); // 用完即停,避免重复触发 } }); }, { threshold: 0.1 }); document.querySelectorAll('.fade-in').forEach(el =&gt; observer.observe(el));</pre> <ul> <li> <code>threshold: 0.1 表示元素 10% 进入视口就触发,不是非要完全可见

  • 不支持 IE,但可搭配 polyfill(如 intersection-observer npm 包)
  • 比 scrollReveal.js 更轻量,无需额外库,原生 API 即可覆盖大部分场景
  • 自定义滚动动画必须绕开 marquee 标签

    <marquee></marquee> 是废弃标签,所有现代浏览器都已弃用,且无法控制缓动、暂停、响应式宽度等基本需求。它生成的滚动有明显空白间隙、速度不可调、无法与 CSS 动画协同。

    真正可用的方案是 CSS @keyframes + transform: translateX(),配合精确宽度计算:

    @keyframes scroll-left {
      0% { transform: translateX(100%); }
      100% { transform: translateX(-100%); }
    }
    .scrolling-text {
      animation: scroll-left 20s linear infinite;
      white-space: nowrap;
    }
    • 关键点:动画位移距离必须等于内容实际宽度(不是父容器宽度),否则会露白
    • 用 transform 而非 left,保证 GPU 加速,避免重排
    • 若内容动态加载,需在 DOM 更新后重新测量并重设动画 duration
    滚动动画最常被忽略的其实是性能边界:平滑滚动本身不耗资源,但一旦叠加大量 scroll 监听、频繁 class 切换、或未节流的尺寸计算,就会立刻拖慢主线程。真正稳定的方案,永远是优先用原生机制(scroll-behavior、IntersectionObserver),再补 JS 控制细节。

    前端入门到VUE实战笔记:立即使用
    在学习笔记中,你将探索 前端 的入门与实战技巧!

    相关文章

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    html

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    html版权符号
    html版权符号

    html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    2023.06.14

    5875

    7

    html在线编辑器
    html在线编辑器

    html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

    2023.06.21

    3312

    4

    html网页制作
    html网页制作

    html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

    2023.07.31

    2990

    5

    html空格
    html空格

    html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.01

    3019

    5

    html是什么
    html是什么

    HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

    2023.08.11

    4799

    6

    html字体大小怎么设置
    html字体大小怎么设置

    在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

    2023.08.11

    2961

    3

    html转txt
    html转txt

    html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.31

    2769

    3

    html文本框代码怎么写
    html文本框代码怎么写

    html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

    2023.09.01

    2448

    6

    HTML嵌入CSS样式的方法
    HTML嵌入CSS样式的方法

    HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

    2023.09.20

    2488

    5

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    GDB 17.2 官方文档集合
    GDB 17.2 官方文档集合

    共0课时 | 0人学习

    Bootstrap 入门安装配置
    Bootstrap 入门安装配置

    共0课时 | 0人学习

    38+ PhpStorm 提示和技巧
    38+ PhpStorm 提示和技巧

    共1课时 | 221人学习