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

好玩又实用的19个JavaScript动画库

前言 今天我们来看看2019年的一些伟大的JavaScript动画库。在2002年左右,我们使用Flash来制作网络动画。...后来,我们开始使用JavaScript进行网页动画,效率高,重量轻。目前,我们甚至进一步采用CSS和SVG进行动画制作。但是,我们仍然需要JavaScript来制作高级动画。...资源地址 TweenJS 一个简单但功能强大的JavaScript库,用于在HTML5和JavaScript属性之间切换和设置动画。独立工作或与画架集成。 ?...资源地址 MoveTo 一个没有任何依赖关系的轻量级滚动动画JavaScript库。 ? 资源地址 Motio 用于简单但功能强大的基于sprite的动画和平移的小型JavaScript库。 ?...资源地址 AOS AOS(动画在滚动)比JavaScript更依赖于CSS。 ? 资源地址 Snabbt.js snabbt.js是一个最低限度的JavaScript动画库。它专注于移动物体。

3.4K11

页面滚动,元素跳动;附带jquery.scrollex.js插件

在现在大多数的网站开发中,都有很多动画效果。 有些动画是页面一加载就要的,还有一些动画是需要页面滚动到那个元素才要展示的。...), transform: translateY(-1rem)或者其他(需要移动的元素) 2) 使用setTimeout 将class:is-loading 去掉 在没有.on-loading的情况下...滚动到要实现动画的元素时(is-inactive): 其实和上面的意思一样: 在未滚动到该元素时,显示假位置。...当滚动到该元素时,去掉class:is-inactive 而监听滚动事件和判断是否去掉class:is-inactive 使用的是jquery.scrollwx.js插件 二、使用方法 要使用这个...· terminate:当unscrollex()方法在某个元素上调用时触发,它的作用是撤销前一个scrollex()调用。 · scroll:在某个元素滚动通过视口时触发。

5.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    不容忽视的 8 个 DOM API

    当设置为 true 时,表示事件监听器只会被触发一次,然后自动移除。这样就不需要使用 removeEventListener() 手动移除事件监听器了。...这样就不需要手动删除事件监听器了。 2. 使用 scrollTo() 方法实现平滑滚动 scrollTo() 方法于 window 对象,并指示浏览器滚动到页面上的指定位置。...使用 dataset 访问和修改数据属性 数据属性提供了一种在HTML元素上存储自定义数据的方式。属性允许我们以编程的方式访问和操作元素上的数据属性。...属性 easing 定义了动画的时间函数,而 fill: 'both' 确保元素在动画完成后保持其动画状态。...HTML或文本内容插入到相对于其他元素的特定位置,但还有两种相关的方法可以提供额外的灵活性: insertAdjacentElement() 和 insertAdjacentText() 。

    32720

    网页元素相交监测:Intersection Observer API

    事件监听和调用 Element.getBoundingClientRect() 都是在主线程上运行,因此频繁触发、调用可能会造成性能问题。这种检测方法极其怪异且不优雅。...假如有一个无限滚动的网页,开发者使用了一个第三方库来管理整个页面的广告,又用了另外一个库来实现消息盒子和点赞,并且页面有很多动画(译注:动画往往意味着较高的性能消耗)。...但当用户滚动页面时,这些相交检测程序就会在页面滚动回调函数里不停触发调用,造成性能问题,体验效果让人失望。...这样,我们网站的主线程不需要再为了监听元素相交而辛苦劳作,浏览器会自行优化元素相交管理。...注意 Intersection Observer API 无法提供重叠的像素个数或者具体哪个像素重叠,他的更常见的使用方式是——当两个元素相交比例在 N% 左右时,触发回调,以执行某些逻辑。

    91620

    will-change提高动画性能与页面滚动性能

    视差滚动现在不是挺流行的嘛,然后Chris Ruppel当其使用background-attachment: fixed实现背景图片不随滚动条滚动而滚动效果的时候,发现,页面的绘制性能掉到了每秒30帧,...3个小tips: background-attachment: fixed改成了position: fixed,因为前面这玩意滚动实时计算重绘; 背景图片所在的元素替换为::before伪元素; 使用了...我们实际上不需要z轴的变化,但是还是假模假样地声明了,欺骗浏览器,这其实是一种不人道的做法。 ① GPU即图形处理器,是与处理和绘制图形相关的硬件。...hover的时候,声明will-change,这样,移出的时候就会自动remove,触发的范围基本上是有效元素范围。...比方说点击某个按钮,其他某个元素进行动画。点击按钮(click),要先按下(mousedown)再抬起才出发。

    81920

    JavaScript 编程精解 中文第三版 十五、处理事件

    在为整个窗口注册处理器之前,我们在window对象上调用了addEventListener。 这种方法也可以在 DOM 元素和一些其他类型的对象上找到。...在mouseup事件后,包含鼠标按下与释放的特定节点会触发"click"事件。例如,如果我在一个段落上按下鼠标,移动到另一个段落上释放鼠标,"click"事件会发生在包含这两个段落的元素上。...滚动事件 每当元素滚动时,会触发scroll事件。...在设置宽度时,我们使用%而不是px作为单位,使元素的大小相对于页面宽度。 innerHeight全局绑定是窗口高度,我们必须要减去滚动条的高度。你点击文档底部的时候是无法继续滚动的。...实际上,事件处理器是在进行滚动之后才触发的。 焦点事件 当元素获得焦点时,浏览器会触发其上的focus事件。当失去焦点时,元素会获得blur事件。 与前文讨论的事件不同,这两个事件不会传播。

    5.6K20

    第134天:移动web开发的一些总结(二)

    同理,趋向于一些固定的元素的特性。我们不使用rem而改为使用px去确保在不同屏幕上表现一致(跟rem的目的相反)。...(4) 多行文本溢出••• 单行文本溢出,对title类的使用非常多,而多行文本类,在详情介绍则用的比较多。...(原因与300ms有关) tap透传的解决方案: ①使用缓存动画,过渡300ms的延迟 ②中间层dom元素的加入,让中间层接收这个“穿透”事件,稍后隐藏 ③“上下”都使用tap事件,原理上解决tap穿透事件...移动web页面也是拥有这样的能力的,但滚动有几种情况需要考虑: body层滚动:(系统特殊化处理) 自带弹性滚动,overflow:hidden失效,GIF和定时器暂停。...④ 上拉加载:使用scroll事件,而不是touch事件(android有bug) (4) Canvas & GPU render【GPU 渲染】 优化技巧: canvas代替img标签 drawImage

    1.8K10

    分享 | 前端性能优化(CSS动画篇)

    拥有加速CSS过滤器的元素 * 元素有一个包含复合层的后代节点(一个元素拥有一个子元素,该子元素在自己的层里) * 元素有一个z-index较低且包含一个复合层的兄弟元素(换句话说就是该元素在复合层上面渲染...所以在节点上使用CSS类来做状态比较是代价很昂贵的 触发重绘的属性 修改时只触发重绘的属性有: * color * border-style * border-radius * visibility *...实际上透明度的改变后,GPU在绘画时只是简单的降低之前已经画好的纹理的alpha值来达到效果,并不需要整体的重绘。...这种方式可以消除在动画开始之前的图层创建时间,使得动画尽快开始(创建图层和绘制图层还是比较慢的),而且不会随着抗锯齿而导出突变。...我们平常会使用left和top属性来修改节点的位置,但正如上面所述,left和top会触发重布局,修改时的代价相当大。

    2K20

    addEventListener() 方法

    注意: 不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。 function 必须。指定要事件触发时执行的函数。 当事件对象会作为第一个参数传入函数。...mouseenter 当鼠标指针移动到元素上时触发。 mouseleave 当鼠标指针移出元素时触发 mousemove 鼠标被移动。 mouseover 鼠标移到某元素之上。...seeking 事件在用户开始重新定位视频/音频(audio/video)时触发。 stalled 事件在浏览器获取媒体数据,但媒体数据不可用时触发。...waiting 事件在视频由于要播放下一帧而需要缓冲时触发。...动画事件 animationend 该事件在 CSS 动画结束播放时触发 animationiteration 该事件在 CSS 动画重复播放时触发 animationstart 该事件在 CSS

    95410

    精通 Intersection Observer API

    滚动可以触发图片懒加载或延迟请求数据、初始化动画、支持无尽内容的加载,如此等等。糟糕的是这些 scroll 事件都不太可靠,也都是资源消耗大户。这在实现效果方面引起了问题,也常常让浏览器不堪重负。...考虑一个当下典型的站点页面,有很多 scroll 事件在发生 -- 广告模块、从底部滚动进来的新内容、时不时需要运行动画的元素,或是页面中的很多图片,都会滚动至被用户看到后才会加载或执行。...根(root) 指的是等待一个对象与其产生交集的某个元素。默认来说,就是浏览器视口(viewport),但任何合法的元素都是可以使用的。...Demo 1 – 动画 在第一个小项目中,我们用一种简单的方式来看看 Intersection Observer API。...向下滚动,一系列元素会出现。用一个 IntersectionObserver 实例监视 3 个目标元素。当它们完全进入视口(root)后,向目标元素上附加一个样式类名,触发对应的 CSS 动画。

    1.3K10

    从15个点来思考前端大量数据渲染与频繁更新的方案

    在虚拟列表中,"放回原位"相当于回收DOM元素,而"拿新书"则相当于重用DOM元素。 这样做减少了总体上需要管理的书籍(DOM元素)数量,从而提高效率。...虚拟列表会计算当前应该显示内容的正确大小和位置,调整滚动容器的高度,使得滚动行为看起来和感觉上就像是在处理全部数据,虽然实际上只渲染了一部分内容。...前端请求数据:前端在需要时发送请求获取数据,传递相应的分页参数。 用户触发加载:根据用户行为(如滚动、点击等)来触发更多数据的加载。...服务端渲染 介绍 服务端渲染(Server-Side Rendering,SSR)是一种在服务器上生成完整的页面HTML代码的技术,然后发送到客户端(浏览器),客户端加载这些HTML显示内容,而不需要等待所有...使用 虽然WebAssembly通常需要使用支持的编程语言编写后编译,但以下是一个简化的流程概述,没有具体代码但描述了从C到WebAssembly的一般步骤: 用C语言或者其他语言编写你的程序。

    2.1K42

    深度剖析浏览器渲染性能原理,你到底知道多少

    Layout(布局):计算每个DOM元素在最终屏幕上显示的大小和位置。由于web页面的元素布局是相对的,所以其中任意一个元素的位置发生变化,都会联动的引起其他元素发生变化,这个过程叫reflow。...用 requestAnimationFrame 实现动画 在 JS 中实现动画应该避免使用 setTimeout 或 setInterval,尽量使用 requestAnimationFrame。...比如下面的例子,获取 box 的属性,设置到 paragraphs 上,由于每次设置 paragraphs 都会触发样式计算和布局过程,而下一次获取 box 的属性必须等到上一步设置结束之后才能触发。...这种绘制方式的好处是,使用transform来实现移动效果的元素将会被正常绘制,同时不会触发其他元素的绘制。...在页面中创建一个新的渲染层最好的方式就是使用CSS属性winll-change,对于目前还不支持will-change属性、但支持创建渲染层的浏览器,可以通过3D transform属性来强制浏览器创建一个新的渲染层

    1.4K20

    Python全栈之jQuery笔记

    隐式遍历,不需要使用for循环; 2. 找对象比较容易,非常灵活; 3. 处理兼容性问题比较好; 4. 实现动画效果非常简单,而且功能强大. 5. 代码简单,粗暴....(在DOM树中沿着同胞之前元素遍历,而不是之后元素遍历). 4.jQuery遍历-过滤 缩小搜索元素的范围: 三个最基本的过滤方法是:first(),last()和eq().它们允许您基于其在一组元素中的位置来选择一个特定的元素...3.3动画队列与停止动画: 在同一个元素上执行多个动画,那么对于这个动画来说,后面的动画会被放到动画队列中,等前面的动画 执行完成才会执行. stop(clearQueue, jumpToEnd...主动触发事件: 可使用jquery对象上的trigger方法来触发对象上绑定的事件....; }); 触发hello事件 element.trigger("hello"); 事件冒泡: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序

    5.5K40

    Interection Observer如何观察变化

    在Mac上,观察者的差异约为88毫秒,而滚动事件的差异约为300毫秒。在Mac上,每种测试的总体结果都相当接近,但是脚本在滚动事件方面表现出色。对于Windows机器,它要差得多得多。...使用滚动事件的解决方案始终存在与将滚动事件用于其他目的相似的问题。观察者的通常解决方案是用一个定位元素,仅作为观察者的目标元素使用。...这样做的限制是,粘性元素的top,right,bottom或left属性必须始终为零。从技术上讲,你可以使用其他值,但随后必须进行数学运算以找出rootMargin的正确值。...这个实例利用了Intersection Observer和滚动事件的优点。考虑使用一个滚动动画库,该动画库仅在页面上需要它的部分实际可见时才起作用。库和滚动事件在整个页面中并非无效地活动。...这是第一个示例: example1[7] 目标元素通过CSS transform属性在根元素内移动。该演示具有CSS动画,该动画可在水平轴上将目标元素移入和移出根元素。

    2.6K20

    【愚公系列】《微信小程序与云开发从入门到实践》035-在小程序中使用动画

    一、在小程序中使用动画 1.使用 WXSS 实现动画效果 在微信小程序中,组件的样式可能会随着时间变化而动态调整,例如尺寸、形状、背景色或旋转角度等。...2.1 使用 animate 方法创建动画 通过小程序的 animate 方法,可以在页面元素上应用动画效果。这个方法接受四个参数: 元素选择器:选择需要执行动画的元素。...会清除 .box 元素上的所有动画效果,且在清除完毕后执行回调函数。...3.1 实现滚动驱动的动画 为了实现滚动驱动的动画,需要使用 scroll-view 组件并为其设置一个固定的高度。在用户滚动 scroll-view 时,页面元素的动画效果会根据滚动的进度变化。...3.2 在 onReady 生命周期方法中添加动画 在页面的 onReady 生命周期方法中,通过 animate 方法为 .box 元素设置基于滚动驱动的动画。

    21120

    Web 用户体验设计提升实践

    [ ] 1.5.3 滚动平滑:使用 scroll-behavior: smooth 让滚动丝滑 使用 scroll-behavior: smooth,可以让滚动框实现平稳地滚动,而不是突兀地跳动。...先说结论,控制滚动层级的意思是尽量让需要进行 CSS 动画(可以是元素的动画,也可以是容器的滚动)的元素的 z-index 保持在页面最上方,避免浏览器创建不必要的图形层(GraphicsLayer),...,也要注意滚动容器的层级,避免因为层级过高而被其他创建了 GraphicsLayer 的元素合并,被动地生成一个 GraphicsLayer ,影响页面整体的渲染性能。...看下图演示,同一个转场动画会被频繁触发,所以尽可能地让每次的动画不要持续过久,能够帮助用户节省更多时间。 [32.gif] 总而言之,动画和过渡要用得恰当好处,避免为了动画而动画非常重要。 2....3.1 什么是可访问性 传统上我们认为这只与残障人士有关,但提升网站的可访问性也可以让其他用户群体(每个人)受益。

    1.3K20

    用最少的代码却实现了最牛逼的滚动动画!

    今天小师妹带领大家学习如何使用最少的代码创建令人叹为观止的滚动动画~ 在聊ScrollTrigger插件之前我们先简单了解下GSAP。...插件简介 ScrollTrigger是基于GSAP实现的一款高性能页面滚动触发HTML元素动画的插件。 通过ScrollTrigger使用最少的代码创建令人叹为观止的滚动动画。...我们需要知道ScrollTrigger是基于GSAP实现的插件,ScrollTrigger是处理滚动事件的,而真正处理动画是GSAP,二者组合使用才能实现滚动动画~ 插件特点 将任何动画链接到特定元素,...嵌入滚动直接触发到任何 GSAP 动画(包括时间线)或创建独立实例,并利用丰富的回调系统做任何您想做的事。 高级固定功能可以在某些滚动位置之间锁定一个元素。 灵活定义滚动位置。 支持垂直或水平滚动。...在滚动记录器处于活动状态时,如将active类添加到触发元素中:toggleClass: "active" 使用 matchMedia() 标准媒体查询为各种屏幕尺寸创建不同的设置。

    2.7K20

    用最少的代码却实现了最牛逼的滚动动画!

    插件简介ScrollTrigger是基于GSAP实现的一款高性能页面滚动触发HTML元素动画的插件。通过ScrollTrigger使用最少的代码创建令人叹为观止的滚动动画。...我们需要知道ScrollTrigger是基于GSAP实现的插件,ScrollTrigger是处理滚动事件的,而真正处理动画是GSAP,二者组合使用才能实现滚动动画~插件特点将任何动画链接到特定元素,以便它仅在视图中显示该元素时才执行该动画...嵌入滚动直接触发到任何 GSAP 动画(包括时间线)或创建独立实例,并利用丰富的回调系统做任何您想做的事。高级固定功能可以在某些滚动位置之间锁定一个元素。灵活定义滚动位置。支持垂直或水平滚动。...在滚动记录器处于活动状态时,如将active类添加到触发元素中:toggleClass: "active"使用 matchMedia() 标准媒体查询为各种屏幕尺寸创建不同的设置。...自定义滚动触发器容器,可以定义一个 div 而不一定是浏览器视口。高度优化以实现最大性能。插件大约只有6.5kb大小。

    3.1K00
    领券