当前位置: 首页 > news >正文

vue使用scrollreveal和animejs实现页面滑动到指定位置后再开始执行动画效果

效果图 

 效果链接:http://website.livequeen.top

介绍 

一、Scrollreveal

ScrollReveal 是一个 JavaScript 库,用于在元素进入/离开视口时轻松实现动画效果。

ScrollReveal 官网链接:ScrollReveal

二、animejs

animejs是一个好用的动画库。

animejs官网链接:

实现

一、引入依赖

1、npm安装

npm install scrollreveal
npm install animejs

 2、代码中引用

import anime from 'animejs';
import ScrollReveal from 'scrollreveal';

二、代码示例

 这里以2个示例来展示代码:

1、单纯使用scrollreveal来展示只有页面滑动到指定class类的时候才会展示切入的动画;

2、scrollreveal配合animejs实现数字动画(从0开始变化到数据原本的数字);

<!-- 单纯使用scrollreveal来展示只有页面滑动到指定class类的时候才会展示切入的动画 -->
<div class="item1"><div></div><div></div><div></div>
</div>
<div class="item2"><div></div><div></div><div></div>
</div><!-- scrollreveal配合animejs实现数字动画(从0开始变化到数据原本的数字) -->
<div class="items"><div class="item"><p class="num">1234</p></div><div class="item"><p class="num">2345</p></div><div class="item"><p class="num">6356</p></div>
</div>

 js代码如下(配置及功能实现):

<script>
import anime from 'animejs';
import ScrollReveal from 'scrollreveal';export default {data() {return {// ScrollReveal()公用配置staggeringOption: {delay: 300,distance: '50px',duration: 500,easing: 'ease-in-out',origin: 'bottom'}};},mounted () {this.init()},methods: {/*** 初始化*/init () {this.initScrollReveal();},/*** 初始化initScrollReveal*/initScrollReveal () {// {...this.staggeringOption, interval: 350} => 代表第一个元素的全部属性+第二个元素的属性// 普通切入动画ScrollReveal().reveal('.item1', {...this.staggeringOption, interval: 350});ScrollReveal().reveal('.item2', {...this.staggeringOption, interval: 350});// 嵌套animejs的数字动画(从0开始变化到数据原本的数字)ScrollReveal().reveal('.items', {beforeReveal: () => {// anime动画-数字从0开始到目标anime({targets: '.item .num',innerHTML: el => {return [0, el.innerHTML];},duration: 2000,round: 1,easing: 'easeInExpo'})}});},}
};
</script>

http://www.lryc.cn/news/387287.html

相关文章:

  • 在Ubuntu 16.04上安装和配置GitLab的方法
  • STM32的SPI通信
  • 机器学习引领教育革命:智能教育的新时代
  • 6月29日,每日信息差
  • SpringCloud中复制模块然后粘贴,文件图标缺少蓝色方块
  • JS乌龟吃鸡游戏
  • 第十节:学习ConfigurationProperties类来配置pojo实体类参数(自学Spring boot 3.x的第二天)
  • 如何学习Node.js
  • 云计算基础知识
  • 基于单片机光纤测距系统的设计与实现
  • python项目实战——人生重开模拟器
  • 小时候的子弹击中了现在的我-hive进阶:案例解析(第18天)
  • 电影票房预测管理系统设计
  • 正则表达式与Pyhton
  • Transformer常见面试题
  • Linux——vim的配置文件+异常处理
  • node mySql 实现数据的导入导出,以及导入批量插入的sql语句
  • Webpack: 底层配置逻辑
  • 数字图像处理期末复习题1
  • poi-tl 生成 word 文件(插入文字、图片、表格、图表)
  • centos上部署Ollama平台,实现语言大模型本地部署
  • Java学习 - Redis Redigo简单介绍
  • 【鸿蒙学习笔记】ArkTS组件 Blank
  • 如何使用Spring Boot进行单元测试
  • 2024steam夏促商店打不开、steam活动加载不了解决方法一览
  • IPC进程通信:QNX
  • OpenCV学习之cv2.imshow()函数
  • Oracle、MySQL、PostGreSQL、SQL Server-空值
  • python pip详解1
  • Linux常用命令大全(超详细!!!)