uniapp旋转动画 uniapp 实现点击图标旋转90度

lxf2023-05-31 09:30:01

本文章实现的效果是:点击按钮,图标顺时针旋转90度,再点击时,逆时针旋转回去,效果图如下:

uniapp旋转动画 uniapp 实现点击图标旋转90度

在 uniapp 中,有两种动画实现方式

  • 直接使用 CSS 动画
  • 通过 uniapp 提供编程式创建动画 uniapp 提供createAnimation内置函数,用于创建一个动画实例animation(本文章使用的方式)

html内容

<view :animation="animationData" @click="openAdd()">
   <u-icon  color="#ccc" size="16"   ></u-icon>
</view>
  • u-icon 是uniapp 提供的显示图标的组件
  • 这里的核心就是 view 的 animation 属性

JS 动画实现

<script>
export default {
  data() {
      return {
          animationData: {},
          isRote: false,
          animation: null,
  },
  onLoad() {},
  methods: {
   
      startAnimation() {
          //旋转角度 
		  let rota = 90;
		  //判断是否展开
		  if(this.isRote){
			  rota = 0;
			  //标记未展开
			  this.isRote = false;
			  //隐藏需要隐藏的内容
			  this.showAddPople = false;
		  }else{
			  this.isRote = true;
			  //显示隐藏的内容
			  this.showAddPople = true;
		  }
		 //创建动画
		this.animation = uni.createAnimation();
		//设置旋转角度 
        this.animation.rotate(rota).step()
        //导出动画
        this.animationData = this.animation.export()
          
      },
}
</script>

平移

this.animation.translate(
		Math.random() * 100 - 50, 
		Math.random() * 100 - 50)
		.step()
this.animationData = this.animation.export()

缩放

this.animation.scale(Math.random() * 2).step()
this.animationData = this.animation.export()

旋转与缩放同时执行

this.animation.rotate(Math.random() * 720 - 360)
					.scale(Math.random() * 2)
					.step()
 this.animationData = this.animation.export()

先旋转后缩放

this.animation.rotate(Math.random() * 720 - 360)
			  .step()
			  .scale(Math.random() * 2)
			  .step()
this.animationData = this.animation.export()
本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!