当前位置:首页 > VUE

vue 实现跳动爱心

2026-02-11 06:50:43VUE

实现跳动爱心的 Vue 组件

以下是使用 Vue 3 实现跳动爱心的代码示例,通过 CSS 动画和动态样式实现效果。

模板部分

<template>
  <div class="heart-container">
    <div 
      class="heart" 
      :style="{ transform: `scale(${scale})` }"
      @click="toggleBeat"
    ></div>
  </div>
</template>

脚本部分

<script>
import { ref } from 'vue';

export default {
  setup() {
    const scale = ref(1);
    const isBeating = ref(false);
    let beatInterval;

    const startBeat = () => {
      isBeating.value = true;
      let growing = true;
      beatInterval = setInterval(() => {
        if (growing) {
          scale.value += 0.05;
          if (scale.value >= 1.2) growing = false;
        } else {
          scale.value -= 0.05;
          if (scale.value <= 1) growing = true;
        }
      }, 100);
    };

    const stopBeat = () => {
      isBeating.value = false;
      clearInterval(beatInterval);
      scale.value = 1;
    };

    const toggleBeat = () => {
      isBeating.value ? stopBeat() : startBeat();
    };

    return { scale, toggleBeat };
  }
};
</script>

样式部分

<style scoped>
.heart-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

.heart {
  width: 100px;
  height: 100px;
  background-color: red;
  position: relative;
  transform: rotate(45deg);
  cursor: pointer;
  transition: transform 0.1s ease;
}

.heart:before,
.heart:after {
  content: '';
  width: 100px;
  height: 100px;
  background-color: red;
  border-radius: 50%;
  position: absolute;
}

.heart:before {
  top: -50px;
  left: 0;
}

.heart:after {
  top: 0;
  left: -50px;
}
</style>

实现原理

  1. 爱心形状
    通过 CSS 创建正方形元素并旋转 45 度,配合两个伪元素形成圆形,组合成爱心形状。

  2. 跳动动画
    使用 JavaScript 定时器动态修改 transform 的 scale 值,在 1 到 1.2 之间循环变化,模拟心跳效果。

  3. 交互控制
    点击爱心时触发 toggleBeat 方法,控制动画的启动和停止。

  4. 响应式样式
    通过 Vue 的 ref 响应式变量 scale 动态绑定样式,实现平滑的缩放效果。

扩展建议

  1. 添加更多动画效果如颜色渐变或位置移动
  2. 使用 CSS @keyframes 实现更复杂的动画序列
  3. 通过 props 接收自定义颜色和大小参数
  4. 添加音效增强交互体验

该组件可以直接在 Vue 项目中导入使用,或根据需求进一步调整动画参数和样式。

vue 实现跳动爱心

标签: 爱心vue
分享给朋友:

相关文章

vue实现点击旋转轮盘

vue实现点击旋转轮盘

实现点击旋转轮盘效果 在Vue中实现点击旋转轮盘效果,可以通过CSS动画和Vue的数据绑定结合完成。以下是一个完整的实现方案: 准备工作 需要安装Vue.js环境,可以通过CDN引入或使用Vue…

vue全选实现

vue全选实现

Vue 全选实现方法 在 Vue 中实现全选功能通常涉及数据绑定和事件处理。以下是几种常见的实现方式: 基础实现方式 <template> <div> <…

vue 实现pdf

vue 实现pdf

在Vue中实现PDF功能 在Vue项目中实现PDF功能通常涉及PDF生成、预览或下载。以下是几种常见实现方式: 使用vue-pdf库预览PDF 安装依赖: npm install vue-pdf…

甘特图vue实现

甘特图vue实现

甘特图 Vue 实现方法 使用开源库 vue-ganttastic 安装依赖: npm install vue-ganttastic 基础实现代码: <template> &l…

vue 实现工具

vue 实现工具

Vue 实现工具的方法 使用 Vue 实现工具功能可以通过多种方式完成,具体取决于工具的类型和需求。以下是几种常见的方法: 组件化实现 创建一个独立的 Vue 组件来封装工具功能。例如,实现一…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,…