aos.js超赞页面滚动元素动画jQuery动画库

所属分类:UI,其他-滚动,动画效果

 134905  776  查看评论 (41)
分享到微信朋友圈
X
aos.js超赞页面滚动元素动画jQuery动画库 ie兼容10

简要教程

aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件。该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果。在页面往回滚动时,元素会恢复到原来的状态。

安装

可以通过bower来安装aos动画库插件。

bower install aos --save

使用方法

在页面中引入aos.css文件,jquery和aos.js文件

<link rel="stylesheet" href="dist/aos.css" />
<script src="js/jquery.min.js"></script>
<script src="dist/aos.js"></script>

HTML结构

要使用aos动画库,你需要做的就是在需要动画的元素上添加aos属性,例如:

<div aos="animation_name">

aos脚本将会在页面滚动时,在该元素上触发相应的动画。

在元素上还可以添加以下一些属性:

属性属性属性默认值
aos-offset是立刻触发动画还是在指定时间之后触发动画200120
aos-duration动画持续时间600400
aos-easing动画的easing动画效果ease-in-sineease
aos-delay动画的延迟时间3000
aos-anchor锚元素。使用它的偏移来取代实际元素的偏移来触发动画#selectornull
aos-anchor-placement锚位置,触发动画时元素位于屏幕的位置top-centertop-bottom
aos-once动画是否只会触发一次,或者每次上下滚动都会触发truefalse

注意,aos-duration的动画持续时间的范围从50-3000毫秒,如果你想设置更大的值,可以在页面中添加下面的CSS代码:

body[aos-duration='4000'] [aos], [aos][aos][aos-duration='4000']{
  transition-duration: 4000ms;
}

上面的代码将动画的持续时间修改为4000毫秒。

示例代码:

<div aos="fade-zoom-in" aos-offset="200" aos-easing="ease-in-sine" aos-duration="600">
<div aos="flip-left" aos-delay="100" aos-anchor=".example-selector">
<div aos="fade-up" aos-anchor-placement="top-center">

如果你担心HTML5校验的问题,可以为上面的属性添加data-前缀。

<div data-aos="animation_name" data-aos-offset="200" data-aos-easing="ease-in-sine">

全局配置

如果你不想单独每个元素做一个动画配置,你可以通过init()方法来统一配置所有元素的动画效果。

AOS.init({
  offset: 200,
  duration: 600,
  easing: 'ease-in-sine',
  delay: 100,
});

额外配置

AOS提供了2个额外的配置方法,这些方法只能够在初始化时使用。

配置描述示例值默认值
disableAOS被禁用的条件mobilefalse
startEventAOS被初始化的事件名称exampleEventDOMContentLoaded

禁用AOS:

如果你项在小屏幕设备中禁用AOS,可以:

AOS.init({
  disable: 'mobile'
});

你可以传入3种设备的类型:mobile、phone或tablet。

你也可以设置自己的禁用条件,例如在屏幕小于1024像素时禁用AOS:

disable: window.innerWidth < 1024

或者传入一个函数,返回true或false。

disable: function () {
    var maxWidth = 1024;
    return window.innerWidth < maxWidth;
}

开始动画的事件:

如果你不想滚动动画从页面加载(DOMContentLoaded)后就开始执行,可以使用startEvent来设置自己的事件,AOS会在document上监听这个事件:

AOS.init({
  startEvent: 'someCoolEvent'
});

API

AOS对象有2个可用的方法:

  • init

  • refresh

AOS.refresh();

上面的代码会重新计算元素的位置和偏移。

动画和锚位置

动画

淡入淡出动画:

  • fade-up

  • fade-down

  • fade-left

  • fade-right

  • fade-up-right

  • fade-up-left

  • fade-down-right

  • fade-down-left

翻转动画:

  • flip-up

  • flip-down

  • flip-left

  • flip-right

滑动动画:

  • slide-up

  • slide-down

  • slide-left

  • slide-right

缩放动画:

  • zoom-in

  • zoom-in-up

  • zoom-in-down

  • zoom-in-left

  • zoom-in-right

  • zoom-out

  • zoom-out-up

  • zoom-out-down

  • zoom-out-left

  • zoom-out-right

锚位置

  • top-bottom

  • top-center

  • top-top

  • center-bottom

  • center-center

  • center-top

  • bottom-bottom

  • bottom-center

  • bottom-top

easing动画

你可以使用以下的一些easing动画效果:

  • linear

  • ease

  • ease-in

  • ease-out

  • ease-in-out

  • ease-in-back

  • ease-out-back

  • ease-in-out-back

  • ease-in-sine

  • ease-out-sine

  • ease-in-out-sine

  • ease-in-quad

  • ease-out-quad

  • ease-in-out-quad

  • ease-in-cubic

  • ease-out-cubic

  • ease-in-out-cubic

  • ease-in-quart

  • ease-out-quart

  • ease-in-out-quart


相关插件-滚动,动画效果

jQuery上下左右滚动插件rollSlide.js

实现上下左右自动滚动、无缝滚动
  滚动
 59781  517

jQuery自定义滚动条插件

支持IE9及以上,360,谷歌,火狐的自定义滚动条,可以设置滚动条的初始位置以及滚动条的颜色等
  滚动
 21227  289

向下滚动加载动画特效插件AOS

向下滚动网页加载动画特效插件AOS
  滚动
 31300  406

jQuery全屏视差滚动效果

jQuery全屏视差滚动效果
  滚动
 38865  405

讨论这个项目(41)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    欣之所巷 0
    2021/11/28 20:05:54
    第一屏幕不执行动画有解决方法吗?
    回复
    H 』 0
    2020/9/24 9:44:12
    默认是可是窗口底部 到了按钮高度就会 出现效果 我现在想让 元素到了可是窗口中间部分 才执行动画 如何处理 回复
    及?行? 0
    2020/6/24 17:04:46
    鼠标滚动到的位置才出现效果怎么弄的 回复
    0
    2019/11/27 9:32:38
    行内设置delay最多只能到3000吗
        ??ふ※爱恋1
        2019/11/29 15:58:17

        在aos.css改,它只写到3000。

        [aos][aos][aos-delay='11400'],body[aos-delay='11400'] [aos]{
         -webkit-transition-delay:0;transition-delay:0
        }
        [aos][aos][aos-delay='11400'].aos-animate,body[aos-delay='11400'] [aos].aos-animate{
         -webkit-transition-delay:11.4s;transition-delay:11.4s
        }
    回复
    手机电脑分期付款 0
    2019/11/20 10:39:23
    每刷新一下只需要执行一次,这个属性aos-once怎么添加呀
        areyouOk1
        2019/11/20 11:03:39

        对div添加data-aos-once="true"这样就行了

        <div class="code code--small code--left" aos="fade-up" data-aos-once="true">
            <code class="html"><div aos="fade-up"></div></code>
        </div>
        手机电脑分期付款0
        2019/11/20 11:30:40
        好的,谢谢!
    回复
    爱越团儿 0
    2019/7/24 16:59:19
    ajax动态加载dom不能触发滚动事件。。。
        后会无期灬0
        2019/11/18 9:46:04
        这个问题我之前也遇到过 加载的时候把js再加载一遍
        № 胗酝而?0
        2019/12/7 9:43:01
        我也遇到了 放到页面底部不能触发滚动事件,放到Ajax 里边数据直接隐藏不显示了 ,怎么解决?
        BattleofLexington1
        2019/12/7 11:54:22
        这是执行顺序问题,Ajax是页面所有内容都执行完后加载的,因为插件是先加载的,这时插件是获取不你的内容。所以你要在Ajax加载完后再次调用插件才可以。
        新手菜鸟12130
        2019/12/20 13:29:44
        再次调用我这没有显示,透明度全都是0
        Fanslly0
        2020/7/17 14:14:47
        这个问题有解决吗,遇到了同样的问题
    回复
    Low energy children are forbidden to enter. 0
    2019/3/23 22:28:49
    这个插件感觉堪称完美!!!!! 回复
    ?????? 0
    2018/7/27 17:38:18
    参数第一个的offset是偏移啊,网上的参数全都写成时间了,去官网看看呗 回复
    虎子 0
    2018/6/11 11:57:30
    这个怎么通过js监听滚动到哪个位置的回调 啊 回复
    ddmm 0
    2018/4/20 10:21:09
    这个插件全局配置的时候,像是aos-anchor-placement这种有横线的怎么写?我仿照js的写法,用大写字母代替横线anchorPlacement,不起作用。 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复