CSS左右摆动动效

 

基础图片,是由一个手部图和一张箭头图而成

代码开箱即用

<template>
  <div class="canvas_box" @click="hanldShow">
    <div class="hander-icon">
      <div class="shou" @animationend="hanldShow"></div>
    </div>
  </div>
</template>

<script>
let timer = null;

let backgroundBlock = 0; // 当前播放进度
let positionTime = null; // 控制动画

export default {
  data() {
    return {
      point: 0,
      isLoading: true,
      height: 0,
      maxPoint: 4,
      isShow: true,
      position: {
        x: 0,
        y: 0,
      },
    };
  },
  mounted() {
    for (let i = 0; i < this.maxPoint; i++) {
      // setTimeout(() => {
      this.move(i);
      // }, 100);
    }
  },
  methods: {
    hanldShow() {
      this.isShow = false;
    },
    move(point) {
      if (point === this.point) return;
      this.point = point;
      const target = point * 20 - 1;
      this.movePosition(target > 0 ? target : 0);
    },

    movePosition(target) {
      const height = 240;
      let animation = () => {
        const tag = target > backgroundBlock ? -1 : 1;
        this.position.y += tag * height;
        backgroundBlock += -tag * 1;
        clearTimeout(positionTime);
        if (Math.abs(this.position.y + height * target) > 1) {
          positionTime = setTimeout(animation, 60);
        }
      };
      clearTimeout(positionTime);
      positionTime = setTimeout(animation, 10);
    },

    handleStopTimer() {
      clearInterval(timer);
      timer = null;
    },
  },
};
</script>

<style lang="scss" scoped>
.hander-icon {
  width: r(750);
  height: r(680);
  border: 1px solid red;
  // background: url('https://.png') no-repeat
  //   center center;
  // background-size: 100% auto;
  display: flex;
  justify-content: center;
  align-items: center;
  .shou {
    width: r(200);
    height: r(200);
    animation: shou 1.5s linear 120 forwards;
    transform-origin: center center;
    border: 1px solid;
    // background: url('https://.png') no-repeat center center / 100% auto;
  }
}
@keyframes shou {
  25%,
  75% {
    transform: translateX(0) rotate(35deg);
  }
  50% {
    transform: translateX(-30%) rotate(20deg);
  }
  0%,
  100% {
    transform: translateX(30%) rotate(50deg);
  }
}
.canvas_box {
  // position: relative;
  width: r(750);
  height: r(750);
  // background: linear-gradient(to bottom, #fbf0dd, #f5e5cc);
  border-radius: r(8);
  box-sizing: border-box;
  position: absolute;
  z-index: 10020;
  border: 1px solid red;
  background-color: navajowhite;
}
</style>

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要实现CSS图片闪光动效,你可以使用CSS的animation属性和@keyframes规则。首先,你需要在CSS中定义一个@keyframes规则,用于描述闪光动画的关键帧。例如,你可以设置一个从透明度为0到透明度为1的关键帧。然后,你可以将这个动画应用到你的图片上,通过设置animation属性来指定动画的名称、持续时间、重复次数等。在你提供的HTML代码中,你可以在img标签上添加一个class属性,比如"glow-effect",然后在CSS中定义这个class的样式,包括animation属性和@keyframes规则。这样,图片就会显示闪光动效了。以下是一个示例代码: ```css @keyframes glow { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } .glow-effect { animation: glow 2s infinite; } ``` 在上面的代码中,@keyframes规则定义了一个名为"glow"的动画,从0%到50%的时间内,透明度从0变为1,然后在50%到100%的时间内,透明度再次变为0。然后,通过设置animation属性,将这个动画应用到具有"class"为"glow-effect"的元素上,持续时间为2秒,无限重复播放。 你可以将上述CSS代码添加到你的CSS文件中,或者直接在HTML文件的`<style>`标签中添加。然后,将你的图片的class设置为"glow-effect",就可以实现图片闪光动效了。 #### 引用[.reference_title] - *1* [纯CSS发光动效-CSS制作logo发光效果](https://blog.csdn.net/m0_60965117/article/details/121475100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值