vue点击按钮实现图片旋转

<template>
  <div>
    <!-- 控制旋转图片样式 -->
  <img
     :style="{
      ...styleImg,
       width: `${w}px`,
       height: `${h}px`,
     }"
       src="https://ts1.cn.mm.bing.net/th/id/R-C.4909aa42dd7c594716632b97f1f18618?rik=HMYl7AI4kVNajg&riu=http%3a%2f%2fimg.sj33.cn%2fuploads%2fallimg%2f200912%2f20091223150532446.jpg&ehk=FScUCbGto5iQGiYuMmbcfs3IQo4mwvkcqSDs%2bJrXAnU%3d&risl=&pid=ImgRaw&r=0"
       alt=""
       ref="imagePig"
       class="imge"
        />

<div style=" display: flex; margin-top: 200px; justify-content: space-between; width: 400px;">
  <button @click="rotate_left" style="width: 100px;height: 100px; font-size: 16px;">左旋转</button>
<button @click="rotates_right"  style="width: 100px;height: 100px; font-size: 16px;">右旋转</button>
</div>

</div>
</template>

<script lang="ts" setup>
import {reactive,ref} from 'vue'
 // 旋转
const styleImg = reactive({
  transform: "",
  transition: "",
});
// 设置宽高
const w =ref('400')
const h =ref('400')
// 逆时针旋转
const deg = ref(0);
const rotate_left = () => {
  if (degs.value != 0) {
    degs.value -= 90;
    styleImg.transform = `rotateZ(${degs.value}deg) scale(1.2)`;
    styleImg.transition = "0.5s";
  } else if (degs.value == 0) {
    deg.value += 90;
    styleImg.transform = `rotateZ(${-deg.value}deg) scale(1.2)`;
    styleImg.transition = "0.5s";
  }
};
// 正时针旋转
const degs = ref(0);
const rotates_right = () =>{
  if (deg.value != 0) {
    deg.value -= 90;
    styleImg.transform = `rotateZ(${-deg.value}deg) scale(1.2)`;
    styleImg.transition = "0.5s";
  } else if (deg.value == 0) {
    degs.value += 90;
    styleImg.transform = `rotateZ(${degs.value}deg) scale(1.2)`;
    styleImg.transition = "0.5s";
  }
};
</script>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值