• 一个流行的网页动画JS库


    animejs

    https://animejs.com/

    Anime.js (/ˈæn.ə.meɪ/) is a lightweight JavaScript animation library with a simple, yet powerful API.
    It works with CSS properties, SVG, DOM attributes and JavaScript Objects.

    此库是一个轻量级的JS动画库,带有简单和强大的API。

    Anime's built-in staggering system makes complex follow through and overlapping animations simple. It can be used on both timings and properties.

    Animate multiple CSS transforms properties with different timings simultaneously on a single HTML element.

    Play, pause, control, reverse and trigger events in sync using the complete built-in callbacks and controls functions.

    Anime.js works with anything web. CSS, SVG, DOM attributes and JavaScript Objects: animate everything with a single unified API.

    GITHUB上有33K的favorites。

    https://github.com/juliangarnier/anime/

    例子

    https://animejs.com/documentation/

    物体沿着一条path行进, path的入参数,表示的DOM对象,可以是一个path, 也可以是任意的一个特殊图形, 如圆圈,抛物线。

    https://animejs.com/documentation/#motionPath

    var path = anime.path('.motion-path-demo path');
    
    anime({
      targets: '.motion-path-demo .el',
      translateX: path('x'),
      translateY: path('y'),
      rotate: path('angle'),
      easing: 'linear',
      duration: 2000,
      loop: true
    });

    教学库

    https://github.com/joao-pratas/animejs-tut

    https://github.com/joao-pratas/animejs-tut/tree/master/anime-master/documentation/examples

    时间线接口,可以串起来每一个小步骤。

    https://github.com/joao-pratas/animejs-tut/blob/master/anime-master/documentation/examples/anime-timeline.html

      var noOffset = anime.timeline({
        autoplay: true
      });
      noOffset
        .add({
          targets: '.no-offset',
          translateX: -100,
          translateY: -100,
          scale: 2,
          background: '#FF1461',
          begin: function() { console.log('noOffset animation 1 began')},
          complete: function() { console.log('noOffset animation 1 completed')}
        })
        .add({
          targets: '.no-offset',
          translateX: -100,
          translateY: 100,
          scale: 3,
          background: '#18FF92',
          begin: function() { console.log('noOffset animation 2 began')},
          complete: function() { console.log('noOffset animation 2 completed')}
        })
        .add({
          targets: '.no-offset',
          translateX: 100,
          translateY: 100,
          rotate: 120,
          scale: 4,
          background: '#5A87FF',
          begin: function() { console.log('noOffset animation 3 began')},
          complete: function() { console.log('noOffset animation 3 completed')}
        })
        .add({
          targets: '.no-offset',
          translateX: 100,
          translateY: -100,
          scale: 5,
          background: '#FBF38C',
          begin: function() { console.log('noOffset animation 4 began')},
          complete: function() { console.log('noOffset animation 4 completed')}
        })
        .add({
          targets: '.no-offset',
          translateX: 100,
          translateY: -100,
          scale: '+=8',
          background: '#FBF38C',
          begin: function() { console.log('noOffset animation 5 began')},
          complete: function() { console.log('noOffset animation 5 completed')}
        });

    练练手

    https://github.com/fanqingsong/sun_system

    实现一个太阳系行星围绕太阳运转动画。

  • 相关阅读:
    Python 模块管理
    Python 练习: 计算器
    Linux 系统性能分析工具 sar
    Python 正则介绍
    Python ConfigParser 模块
    Python logging 模块
    Python hashlib 模块
    Python sys 模块
    09 下拉框 数据验证
    08 条件排序
  • 原文地址:https://www.cnblogs.com/lightsong/p/11854088.html
Copyright © 2020-2023  润新知