html如何设置滚动动画,JavaScript 实现页面滚动动画

本文介绍了如何使用纯JavaScript和CSS实现元素随着页面滚动的动画效果。通过创建布局,设置CSS样式,然后编写JavaScript函数来检测元素是否在视窗内,从而在用户滚动时动态添加和移除class,实现动画效果。同时,还提到了使用节流函数来优化滚动事件的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做前端 UI 效果时,让元素根据滚动位置实现动画效果是一个非常流行的设计,通常我们会使用第三方插件或库来实现。在本教程中,我将教大家使用纯 JavaScript 和 CSS 来实现。

先预览一下实现的效果:

172259a20341bba60da3f1638c7dafc2.gif

我们使用 CSS 来实现动画,用 JavaScript 来处理触发所需的样式。我们先来创建布局。

创建布局

我们先使用 HTML 创建页面布局,然后为需要实现动画的元素分配一个通用类名,后面的 JavaScript 通过此类名定位这些元素。这里我们给需要根据滚动实现动画的元素指定为类名 js-scroll,HTML 代码如下:

This animation fades in from the top.

添加 CSS 样式

先来一个简单的淡入动画效果:

.js-scroll {

opacity: 0;

transition: opacity 500ms;

}

.js-scroll.scrolled {

opacity: 1;

}

页面上的所有 js-scroll 元素都会被隐藏,不透明度为 0。当滚动到该元素区域时,给它加上 .scrolled 类名让它显现出来。

用 JavaScript 操作元素

有了布局和样式,现在我们需要编写一个 JavaScript 函数,当元素滚动到视图中时,为它们分配类名。

我们来简单分解一下逻辑:

获取页面上所有 js-scroll 元素

使这些元素默认淡出不可见

检测元素是否在视窗内

如果元素在视窗内则分配 scrolled 类名

获取目标元素

获取页面上所有 js-scroll 元素,使用 document.querySelectorAll() 即可:

const scrollElements = document.querySelectorAll('.js-scroll')

默认淡出所有目标元素

遍历这些元素,使其全部淡出不可见:

scrollElements.forEach((el) => {

el.style.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值