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

在vanilla JS中进行滚动动画

,可以使用一些常见的技术和方法来实现。

  1. 使用CSS的@keyframesanimation属性来创建滚动动画。通过定义关键帧和动画属性,可以实现元素的平滑滚动效果。具体步骤如下:
    • 创建一个CSS动画,使用@keyframes定义关键帧,设置不同时间点的样式。
    • 将动画应用到需要滚动的元素上,使用animation属性设置动画的名称、持续时间、延迟等属性。

例如,创建一个向下滚动的动画:

代码语言:css
复制

@keyframes scrollDown {

代码语言:txt
复制
 0% {
代码语言:txt
复制
   transform: translateY(0);
代码语言:txt
复制
 }
代码语言:txt
复制
 100% {
代码语言:txt
复制
   transform: translateY(100%);
代码语言:txt
复制
 }

}

.scrollable-element {

代码语言:txt
复制
 animation: scrollDown 2s infinite;

}

代码语言:txt
复制
  1. 使用requestAnimationFrame方法来实现滚动动画。requestAnimationFrame是浏览器提供的一个API,用于在下一次重绘之前执行指定的函数。通过不断更新元素的位置,可以实现滚动动画的效果。具体步骤如下:
    • 使用requestAnimationFrame方法创建一个循环函数,用于更新元素的位置。
    • 在循环函数中更新元素的位置,例如通过修改元素的scrollTop属性实现垂直滚动。
    • 根据需要设置动画的持续时间、缓动效果等。

例如,创建一个向下滚动的动画:

代码语言:javascript
复制

function scrollDown(element, duration) {

代码语言:txt
复制
 const start = element.scrollTop;
代码语言:txt
复制
 const end = element.scrollHeight - element.clientHeight;
代码语言:txt
复制
 const startTime = performance.now();
代码语言:txt
复制
 function animate(currentTime) {
代码语言:txt
复制
   const elapsedTime = currentTime - startTime;
代码语言:txt
复制
   const scrollPosition = easeInOutQuad(elapsedTime, start, end - start, duration);
代码语言:txt
复制
   element.scrollTop = scrollPosition;
代码语言:txt
复制
   if (elapsedTime < duration) {
代码语言:txt
复制
     requestAnimationFrame(animate);
代码语言:txt
复制
   }
代码语言:txt
复制
 }
代码语言:txt
复制
 requestAnimationFrame(animate);

}

function easeInOutQuad(t, b, c, d) {

代码语言:txt
复制
 t /= d / 2;
代码语言:txt
复制
 if (t < 1) return c / 2 * t * t + b;
代码语言:txt
复制
 t--;
代码语言:txt
复制
 return -c / 2 * (t * (t - 2) - 1) + b;

}

const scrollableElement = document.querySelector('.scrollable-element');

scrollDown(scrollableElement, 2000);

代码语言:txt
复制

以上是两种常见的在vanilla JS中实现滚动动画的方法。根据具体需求和场景,可以选择适合的方法来实现滚动动画效果。

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

网站页面滚动加载动画JS特效

终于尘埃落定了,前段时间忙的不可开交,结婚,工作,因为婚假+年假一起休的,导致很长时间没有更新博客了,今天抽空给大家带来了一个js特效,网站模块延迟加载的动画,假期之前就想着制作这个功能,页面滚动加载...简介 和 WOW.js 一样,scrollReveal.js 也是一款页面滚动显示动画的 JavaScript,能让页面更加有趣,更吸引用户眼球。...不同的是 WOW.js动画只播放一次,而 scrollReveal.js动画可以播放一次或无限次;WOW.js 依赖 animate.css,而 scrollReveal.js 不依赖其他任何文件...after/wait 说明: 动画延迟时间 值: 数字,以秒为单位 填充(可选) 可以 data-scroll-reveal...如果不喜欢这个可以试试wow.js,网站页面滚动加载动画JS特效(二)。

11.4K20
  • 网站页面滚动加载动画JS特效(二)

    昨天发布了网站页面滚动加载动画JS特效,但是加载的页面并不怎么完美,文章页面不能直接加载出来,需要滚动条继续下来,可能是没有调节js导致的,所以今天又重新测试了wow.js,感觉这个不错,很喜欢,有兴趣的可以测试下...页面向下滚动的时候,有些元素会产生细小的动画效果。虽然动画比较小,但却能吸引你的注意。比如刚刚发布的 iPhone 6 的页面(查看)。如果你希望你的页面也更加有趣,那么你可以试试 WOW.js。...WOW.js 依赖 animate.css,所以它支持 animate.css 多达 60 多种的动画效果,能满足您的各种需求。 ?...使用方法 1、引入文件(自带的css样式) 2、HTML(给需要滚动动画的div增加两个css属性) <div...是否移动设备上执行动画 live 布尔值 true 异步加载的内容是否有效 这个跟上次的不太一样,引入了css+script其他步骤相同,其他功能未测,大家可以自己DIY。

    7.4K30

    JS 如何使用 Ajax 来进行请求

    本教程,我们将学习如何使用 JS 进行AJAX调用。 1.AJAX 术语AJAX 表示 异步的 JavaScript 和 XML。 AJAX JS 中用于发出异步网络请求来获取资源。...来自服务器的响应存储responseText变量,该变量使用JSON.parse()转换为JavaScript 对象。...如果存在网络错误,则将拒绝,这会在.catch()块处理。 如果来自服务器的响应带有任何状态码(如200、404、500),则promise将被解析。响应对象可以.then()块处理。...将响应代码(例如404、500)视为可以catch()块处理的错误,因此我们无需显式处理这些错误。...它提供了与IE11等旧浏览器的向后兼容性 它将响应作为JSON对象返回,因此我们无需进行任何解析 4.1 示例:GET // chrome控制台中引入脚本的方法 var script = document.createElement

    8.9K20

    NodeJS利用bookshelf.js进行事务(transaction)管理

    英文中transaction又是交易的意思,我想应该是因为事务(transaction)管理的场景首先是出现在利用银行账户进行交易(transaction)的过程,所以计算机科学家们把数据库的这一特性称为事务...隔离性(isolation): 尽管多个事务可能并发执行,但系统保证,对于任何一对事务Ti和Tj,Ti看来,Tj或者Ti开始之前已经执行完成,或者Ti完成之后开始执行。...NodeJS我们可以借助ORM框架来方便地实现事务操作,这里用bookshelf.js来举例说明。...所以我们只需要利用已有的表结构初始化一个ORM的实例来进行操作。...所以我们只需要利用已有的表结构初始化一个ORM的实例来进行操作。

    2.6K70

    NodeJS利用bookshelf.js进行事务(transaction)管理

    英文中transaction又是交易的意思,我想应该是因为事务(transaction)管理的场景首先是出现在利用银行账户进行交易(transaction)的过程,所以计算机科学家们把数据库的这一特性称为事务...隔离性(isolation): 尽管多个事务可能并发执行,但系统保证,对于任何一对事务Ti和Tj,Ti看来,Tj或者Ti开始之前已经执行完成,或者Ti完成之后开始执行。...NodeJS我们可以借助ORM框架来方便地实现事务操作,这里用bookshelf.js来举例说明。...所以我们只需要利用已有的表结构初始化一个ORM的实例来进行操作。...所以我们只需要利用已有的表结构初始化一个ORM的实例来进行操作。

    1.5K20

    SwiftUI 的作用域动画

    前言从一开始,动画就是 SwiftUI 最强大的功能之一。你可以 SwiftUI 快速构建流畅的动画。...简单示例让我们从一个简单的示例开始,展示我们旧方法的一些缺点,这些方法用于 SwiftUI 驱动动画。...动画视图修饰符我们可以通过使用动画视图修饰符的另一个版本来消除意外动画,在这个版本,我们可以绑定到特定值,并且仅在值更改时进行动画处理。... ViewBuilder 闭包内部,可以安全地对视图应用任何视图修饰符,并期望仅对此代码块进行动画处理。...总结这篇文章介绍了SwiftUI构建动画的新方法,重点解决了多步动画或特定视图层次结构控制动画的挑战。

    17110

    2019 年 11 个受欢迎的 JavaScript 动画库!

    这个库提供了canvas、 svg、CSS3D 和 WebGL渲染器,让我们设备和浏览器之间创建丰富的交互体验。该库于2010年4月首次推出,目前仍有近1000名贡献者开发。...GreenSock JS ? GSAP 是一个JavaScript库,用于创建高性能、零依赖、跨浏览器动画,据称超过400万个网站上使用。...GSAP是灵活的,可以与React、Vue、Angular和vanilla JS协同工作。GSDevtools 还可以帮助使用GSAP构建dubug动画。 Scroll Reveal ?...拥有15K的star和零依赖,这个库为 web 和移动浏览器提供了简单的滚动动画,以动画的方式显示滚动的内容。它支持多种简洁的效果类型,甚至允许你使用自然语言定义动画。...您=可以复制和粘贴希望自己的样式表中使用的效果,或者引用样式。 Kute.js ? 一个完全成熟的原生JavaScript动画引擎,具有跨浏览器动画的基本功能。

    2.4K20

    2019 年 最受欢迎的10个 JavaScript 动画库!

    这个库提供了、 、CSS3D 和 WebGL渲染器,让我们设备和浏览器之间创建丰富的交互体验。该库于2010年4月首次推出,目前仍有近1000名贡献者开发。 2....GreenSock JS ? GSAP 是一个JavaScript库,用于创建高性能、零依赖、跨浏览器动画,据称超过400万个网站上使用。...GSAP是灵活的,可以与React、Vue、Angular和vanilla JS协同工作。GSDevtools 还可以帮助使用GSAP构建dubug动画。 8. Scroll Reveal ?...拥有15K颗星星和零依赖,这个库为 web 和移动浏览器提供了简单的滚动动画,以动画的方式显示滚动的内容。它支持多种简洁的效果类型,甚至允许你使用自然语言定义动画。...超过 20k 星星,Hover提供了CSS3支持的悬停效果集合,可应用于链接、按钮、徽标、SVG、特色图像等,CSS、Sass和LESS可用。

    1.6K10

    Linux 系统手动滚动日志的方法

    这一个过程很容易就可以实现自动化,细节上还能按需作出微调。 使用 logrotate 命令可以手动执行日志滚动的操作。本文将要介绍的就是手动进行日志滚动的方法,以及预期产生的结果。...为什么需要滚动日志 一般情况下,无需手动旋转日志文件。Linux 系统会每隔一天(或间隔更长的时间)或根据日志文件的大小自动进行一次日志滚动。...一点背景介绍 Linux 系统安装完成后就已经有很多日志文件被纳入到日志滚动的范围内了。另外,一些应用程序安装时也会为自己产生的日志文件设置滚动规则。...日志滚动的过程,活动日志会以一个新名称命名,例如 log.1,之前被命名为 log.1 的文件则会被重命名为 log.2,依此类推。...$ grep wtmp /var/lib/logrotate/status "/var/log/wtmp" 2020-3-12-11:52:57 总结 到此这篇关于 Linux 系统手动滚动日志的文章就介绍到这了

    2.4K21

    使用 fartscroll.js 让你的网页滚动时放屁

    放屁绝对不是一个很高雅的行为,但是如果你比较喜欢恶搞,或者愚人节,或者是一些比较特殊的网页设计,可以通过 fartscroll.js 这个插件让你的网页滚动的过程 放屁。...直接打开 fatscroll.js 的官方页面(http://theonion.github.io/fartscroll.js/),滚动一下,你就可以听到了放屁声音了,你滚动的距离和速度不同,放屁的声音也不同...使用方法也很简单,先下载插件包,解压出来之后,在网页引入 fartscroll.min.js 这个文件,然后配置下面的参数等,启用这个插件: // 文档滚动 400 像素就放屁 $(document...).fartscroll(); // 文档滚动 800 像素就放屁 $(document).fartscroll(800); // 网页滚动 100 像素就放屁 $("body").fartscroll...(100); // 很多很多的屁 $("body").fartscroll(5); 仅供娱乐和恶搞哈,相信应该没有太多人喜欢访问你网页的时候,听到你网页放屁哈哈。

    92820

    vue.js滚动条加载更多数据

    scrollTop为滚动Y轴上的滚动距离。   clientHeight为内容可视区域的高度。   scrollHeight为内容可视区域的高度加上溢出(滚动)的距离。   ...vue的页面组件中有一个created 时期,在这里给窗口加上窗口滚动的监听 例: ?...表示跳过X个数据,读取Y个数据 这两个都是能完成需要,但是他们之间是有区别的: ①是从数据库第三条开始查询,取一条数据,即第三条数据读取,一二条跳过 ②是从数据库的第二条数据开始查询两条数据,即第二条和第三条...最后把查询的结果返回给刚刚请求该方法的get()的ajax或axios 之后,使用 ?...将新查询到的结果添加到之前页面渲染的数组,这样就可以实现瀑布流加载 注: 为了美观,如果使用一些loading及loadmore组件给用户一个等待的缓冲,一定要特别注意让这些组件显示的时机的条件 最后

    5K30
    领券