vue v-for 点击的时候,图片进行旋转

clipboard.png

clipboard.png

clipboard.png

被点击的那一条 的箭头 旋转。。 要怎么做?

阅读 13.1k
3 个回答

css做旋转动画
新建一个data 比如叫 rotate:false
然后用三目运算绑定class,v-bind:class=[rotate=true?'class a':'class b']
然后点击让rotate发生改变
这样应该可以实现的

<style lang="css" scoped>
    .aa{
        transition: all 2s;
    }
    .go{
        transform:rotate(-180deg);
        transition: all 2s;
    }
</style>
<template>
<div>
    <i :class="[rotate?'fa fa-arrow-down go':'fa fa-arrow-down aa']" @click="start"></i> //class随rotate的true或者false改变 我这为图方便用了项目里的图标测试,图片也是一样的~
</div>

</template>
<script>
export default {
  data () {
    return {
        rotate:false
    }
  },
  methods: {
      start(){
          this.rotate=!this.rotate;
          console.log(this.rotate)
      }
  }
}
</script>

v-for 数据的话 改变当前的 可以根据索引来取当前目标

.style.transform = "rotate("90 + "deg)"
改变他的style属性
但是一般做旋转下次进来 还需要旋转状态 单前端实现很麻烦
你需要和后台配合 把渲染完这个图片的路径传给后台替换之前的路径

现在阿里的就很适合 而且前端就可以实现图片旋转 你可以看看
https://helpcdn.aliyun.com/do...

思路是这样的,先写一个旋转180度的class类,确定一个flag判断你的按钮处于哪种状态,同时利用vue的class绑定(用三元表达式判断),通过不同的状态判断绑定哪个class,详见class的绑定

推荐问题