iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >angular使用TweenMax动画库的问题和解决方法
  • 666
分享到

angular使用TweenMax动画库的问题和解决方法

2024-04-02 19:04:59 666人浏览 独家记忆
摘要

最近闲来无事,捣鼓捣鼓CSS 发现了一个比较好动画库,就是TweenMax 用起来略微有点麻烦,但是效果确实可以。 首先在angular中使用TweenMax就得先通过npm 安装

最近闲来无事,捣鼓捣鼓CSS

发现了一个比较好动画库,就是TweenMax

用起来略微有点麻烦,但是效果确实可以。

首先在angular中使用TweenMax就得先通过npm 安装

1.  npm install --save-dev gsap
2.  npm install --save-dev @types/gsap

然后再引入


import {TweenMax} from "gsap";

就可以在页面中使用了。

遇到的第一个问题就是,想要动画通过按钮触发来不停的播放
但是动画播完一遍以后,怎点按钮都不会触发

后面找到了原因,需要在反复触发的时候,改变其位置才行,比如说一开始的X为500,动画播完后X的位置就是500了,再反复触发,位置还是500所以不会有作用,所以想要反复触发,就得修改其位置


this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut
  })

第二个问题就是,在页面上,想要在动画过程中和结束以后改变蓝色按钮的状态和文字,结果发现直接用绑定在按钮上的属性不能够完成这个操作


<button [disabled]="isMoveing" style="margin-top: 10px;" nz-button nzType="primary" (click)="repeat()">
  {{describle}}
</button>

this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut,
   onStart:function(){
    this.describle = '运动中'
    this.isMoveing = true
   },
   onComplete:function(){
    this.describle = '动'
    this.isMoveing = false
   }
  })

通过一番折腾发觉,其实是this指向的问题

上图可以看到,在TweenMax方法中,this指向的是Tween这个方法本身,而我们需要改变的对象,是处在组件中的,也就是下图所示

定位到了问题所在处,那解决起来就比较简单了,在函数作用域之外的地方定义一个元素指向正确的this就行


let _this = this
this.test = new TweenMax('.box',3,{
   x:this.direction?0:500,
   ease:Bounce.easeOut,
   onStart:function(){
    _this.describle = '运动中'
    _this.isMoveing = true
   },
   onComplete:function(){
    _this.describle = '动'
    _this.isMoveing = false
   }
  })

这样就正常了。

总结

到此这篇关于angular使用TweenMax动画库的文章就介绍到这了,更多相关angular使用TweenMax内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: angular使用TweenMax动画库的问题和解决方法

本文链接: https://www.lsjlt.com/news/121935.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • angular使用TweenMax动画库的问题和解决方法
    最近闲来无事,捣鼓捣鼓CSS 发现了一个比较好动画库,就是TweenMax 用起来略微有点麻烦,但是效果确实可以。 首先在angular中使用TweenMax就得先通过npm 安装 ...
    99+
    2024-04-02
  • angular如何使用TweenMax动画库
    小编给大家分享一下angular如何使用TweenMax动画库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近闲来无事,捣鼓捣鼓CSS发现了一个比较好动画库,就...
    99+
    2023-06-14
  • 详解jQuery的animate动画方法及动画排队问题解决
    目录animate()动画方法 动画排队 delay()延迟方法 stop()停止动画方法 清空动画排队 动画排队问题 animate()动画方法 作用:执行css属性集...
    99+
    2024-04-02
  • 如何解决jQuery中animate动画方法及动画排队的问题
    这篇文章将为大家详细讲解有关如何解决jQuery中animate动画方法及动画排队的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jquery是什么jquery是一个简洁而快速的JavaScript库...
    99+
    2023-06-14
  • Python用matplotlib库画图中文和负号显示为方框的问题解决
    目录前言解决办法程序测试总结 解决Python中matplotlib 库画图中文和负号显示为方框的问题 注意: ​ 语言版本:Python 3.10.4 ​ 编译器版本:P...
    99+
    2024-04-02
  • Java 画时钟遇到的问题及解决方法
    这期内容当中小编将会给大家带来有关Java 画时钟遇到的问题及解决方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.不能一直得到当前的时间,导致刷新时间不变。刚开始我自以为把int s = calen...
    99+
    2023-06-25
  • C++中指针问题和引用问题的解决方法
    C++中指针问题和引用问题的解决方法引言:在C++编程过程中,指针问题和引用问题是常见的困扰程序员的难题。本文将介绍一些解决这些问题的方法,并通过具体的代码示例进行说明,帮助读者更好地理解和应用。一、指针问题的解决方法空指针检测在使用指针之...
    99+
    2023-10-22
    指针问题解决方法:指针 引用问题解决方法:引用 C++中的解决方法:解决方法
  • Springboot使用test无法启动问题的解决
    Springboot使用test无法启动 test无法启动,遇到 java.lang.IllegalStateException: Unable to find a @Spring...
    99+
    2024-04-02
  • c#使用listbox的详细方法和常见问题解决
    关于ListBox ListBox是WinForm中的列表控件,它提供了一个项目列表(一组数据项),用户可以选择一个或者多个条目,当列表项目过多时,ListBox会自动添加滚动条,使...
    99+
    2024-04-02
  • python画图中文不显示问题的解决方法
    目录前言一、plt.title中文显示的解决:二、plt.plot中文显示的解决:三、供参考代码总结前言 python画图,如果用英文显示基本没有问题,但是中文可能会有乱码或者不显示...
    99+
    2024-04-02
  • 如何解决ionic和angular上拉加载的问题
    这篇文章主要介绍了如何解决ionic和angular上拉加载的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说到ionic上拉加载就跟p...
    99+
    2024-04-02
  • react组件中过渡动画的问题解决
    目录一、是什么二、如何实现CSSTransitionSwitchTransitionTransitionGroup一、是什么 在日常开发中,页面切换时的转场动画是比较基础的一个场景 ...
    99+
    2024-04-02
  • Vue-Luckysheet的使用方法及遇到问题解决方法
    Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 配置文档 · API · 教程:快速上手 | Luckyshe...
    99+
    2022-11-13
    Vue Luckysheet使用 Vue Luckysheet
  • Python利用subplots_adjust方法解决图表与画布的间距问题
    目录1.问题情境2. plt.subplots_adjust()概述3. 案例展示3.1 单图情形3.2 多子图情形1.问题情境 我们使用python的 matplotlib库绘图时...
    99+
    2024-04-02
  • K3问题总结和解决方法
    一、问题描述 客户端运行,提示:该数据正在被修改,无法编辑? 解决方法1、关闭杀毒软件; 2、用KDMAINDBG.EXE跟踪检测组件; 3、在数据库的该套帐实体中的表中清空t-funcontrol的内容 二、问题描述1...
    99+
    2023-01-31
    解决方法
  • Mybatis-Plus使用saveOrUpdate及问题解决方法
    今天的想法是,要在插入数据库时,如果有某某一个主要字段的值重复,则不插入,否则则插入!看了一下mybatis-Plus是有这个saveOrUpdate 方法! 原本使用sa...
    99+
    2023-01-11
    Mybatis-Plus saveOrUpdate
  • React-vscode使用jsx语法的问题及解决方法
    问题描述 安装了插件ES7 React/Redux/GraphQL/React-Native snippets还是不能完全支持 所以我参考了博客,得出了我的解法 解决方法 打开设置...
    99+
    2024-04-02
  • Shard-Jdbc数据库扩容的场景和问题的解决方法
    这篇文章主要介绍“Shard-Jdbc数据库扩容的场景和问题的解决方法”,在日常操作中,相信很多人在Shard-Jdbc数据库扩容的场景和问题的解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shard...
    99+
    2023-06-02
  • 使用pyinstaller打包python文件遇到的问题和解决方法
    pyinstaller 的基本使用方法 情况1:当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时 例如: 打包下面这个检查输入的ip是否符合规范的程序ipch...
    99+
    2023-10-23
    python 开发语言
  • Android接入ffmpeg库及问题解决方法
    目录一、准备交叉编译环境二、交叉编译ffmpeg+libx264+libfdk-aac1. 交叉编译libfdk-aac2. 交叉编译libx2643. 交叉编译ffmpeg一、准备...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作