【问题标题】:How to setup Anime JS in a Ionic / Angular project?如何在 Ionic / Angular 项目中设置 Anime JS?
【发布时间】:2018-05-11 02:05:26
【问题描述】:

我喜欢animejs 库形式:https://github.com/juliangarnier/anime 它快速、清晰且易于实现,但在 Angular 项目的 Ionic 中除外。

我看过帖子:anime.js not working in Ionic 3 project 但是,它对我不起作用。

图像(我要动画的对象)没有动画。

有人有这个工作吗?请分享解决方案?

到目前为止我做了什么:

  1. 使用 npm 安装animejs:package.json 更新为:“animejs”:“^2.2.0”
  2. Animejs 在 node_modules 中可用
  3. 使用自定义 copy-lib,anime.min.js 会加载到 index.html 中,请参阅:
const existingConfig = require('../node_modules/@ionic/app-scripts/config/copy.config'); module.exports = Object.assign(existingConfig, { 复制字体:{ src: ['{{ROOT}}/node_modules/font-awesome/fonts/**/*'], dest: '{{WWW}}/assets/fonts' }, copyFontawesomeCss: { src: ['{{ROOT}}/node_modules/font-awesome/css/font-awesome.min.css'], 目标:'{{WWW}}/assets/css' }, 复制动漫JS:{ src: ['{{ROOT}}/node_modules/animejs/anime.min.js*'], 目标:'{{WWW}}/assets/js' }, } );
  1. index.html 看起来像:

    ...

      <!-- Font-awesome -->
      <link href="assets/css/font-awesome.min.css" rel="stylesheet"/>
    
      <!-- Anime JS -->
      <link href="assets/js/anime.min.js" rel="stylesheet"/>
    

    ...

  2. anime.min.js 在 index.html 中可用

  3. 我在我的 login.ts 文件中导入胺,如:

    import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; import * as anime from 'animejs'; ...

  4. 在构造函数中加载它:

    动漫({ 目标:'#authImg', 翻译Y:-50, 弹性:800, 持续时间:2500, 方向:“替代”, 缓动:'easeInOutCubic', 循环:真 });

  5. 哪些必须为以下 html 设置动画:

    &lt;img src="assets/img/auth.png" alt="" id="authImg" /&gt;

  6. 但是什么也没发生……

【问题讨论】:

    标签: javascript ionic3 anime.js


    【解决方案1】:

    如果您从 2020 年开始,请像这样导入它

    import anime from 'animejs/lib/anime.es';
    

    【讨论】:

      【解决方案2】:

      我认为您不必将assets/js/anime.min.js 链接到您的 index.html 也不必使用 ionic 应用脚本复制 js。

      只需导入anime.js如下:

      import * as anime from 'animejs';

      然后确保在加载视图后设置动画(例如在 ionViewDidLoad 中。

      我刚刚运行了这个示例,它运行良好:

      Example.ts:

      import { Component } from '@angular/core';
      import { NavController, NavParams } from 'ionic-angular';
      import * as anime from 'animejs';
      
      @Component({
          selector: 'page-example',
          templateUrl: 'example.html',
      })
      export class ExamplePage {
      
          constructor(public navCtrl: NavController, public navParams: NavParams) {
          }
      
          ionViewDidLoad() {
      
              anime({
                  targets: '#cssSelector .el',
                  translateX: 250
              });
      
          }
      
      }
      

      示例.html:

      <ion-header>
      
          <ion-navbar>
              <ion-title>Example</ion-title>
          </ion-navbar>
      
      </ion-header>
      
      
      <ion-content padding>
      
          <div id="cssSelector">
              <div class="line">
                  <div class="square el"></div>
              </div>
          </div>
      
      </ion-content>
      

      example.scss:

      page-example {
        .square, .circle {
          pointer-events: none;
          position: relative;
          width: 28px;
          height: 28px;
          margin: 1px;
          background-color: currentColor;
          font-size: 12px;
        }
      }
      

      【讨论】:

      • 你摇滚!谢谢,它有效。确实没有在 index.html 中导入
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2016-01-22
      • 2018-12-23
      • 2017-12-23
      • 2020-05-11
      相关资源
      最近更新 更多