【CSS】input回车抖动效果、div 3d盒子鼠标移入转动效果(vue3)

  • 效果

在这里插入图片描述

在这里插入图片描述- 代码

<script setup>
import { ref } from 'vue'
const input = ref('')
// 是否抖动
const dong = ref(false)
// 回车触发
const carriageReturn = () => {
  dong.value = true
  setTimeout(() => (dong.value = false), 800)
}
</script>

<template>
  <el-input class="page_input" :class="[{ shake: dong }]" v-model="input" @keyup.enter="carriageReturn" />
  <div class="box">
    <div class="box_1"></div>
    <div class="box_2"></div>
    <div class="box_3"></div>
    <div class="box_4"></div>
    <div class="box_5"></div>
    <div class="box_6"></div>
  </div>
</template>

<style lang="scss" scoped>
.page_input {
  margin: 20px;
  width: 220px;
}
.shake {
  animation-name: errtips;
  animation-duration: 0.5s;
  animation-iteration-count: infinite;
}
@keyframes errtips {
  10% {
    transform: rotateX(6deg) rotateY(6deg);
  }
  30% {
    transform: rotateX(-6deg) rotateY(6deg);
  }
  55% {
    transform: rotateX(-6deg) rotateY(-6deg);
  }
  70% {
    transform: rotateX(6deg) rotateY(-10deg);
  }
}
.box {
  transform-style: preserve-3d;
  width: 200px;
  height: 200px;
  border: 1px dotted #ccc;
  margin: 200px auto;
  transition: all 4s;
  position: relative;
}

.box div {
  width: 200px;
  height: 200px;
  position: absolute;
  color: #fff;
  transition: 2s;
}

.box:hover {
  transform: rotateX(360deg) rotateY(180deg);

  .box_1 {
    transform: translateZ(-200px);
  }
  .box_2 {
    transform: rotateX(90deg) translateZ(-200px);
  }
  .box_3 {
    transform: rotateX(90deg) translateZ(200px);
  }
  .box_4 {
    transform: translateZ(200px);
  }
  .box_5 {
    transform: rotateY(90deg) translateZ(-200px);
  }
  .box_6 {
    transform: rotateY(90deg) translateZ(200px);
  }
}

.box_1 {
  background: #777bce;
  transform: translateZ(-100px);
}
.box_2 {
  background: #c0d6cb;
  transform: rotateX(90deg) translateZ(-100px);
}
.box_3 {
  background: #f52443;
  transform: rotateX(90deg) translateZ(100px);
}
.box_4 {
  background: #e3dbbf;
  transform: translateZ(100px);
}
.box_5 {
  background: #eddd9e;
  transform: rotateY(90deg) translateZ(-100px);
}
.box_6 {
  background: #7d7d00;
  transform: rotateY(90deg) translateZ(100px);
}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值