当前位置:首页 > VUE

vue实现表白

2026-01-12 21:21:06VUE

Vue实现表白页面

使用Vue可以创建一个动态、交互式的表白页面。以下是实现方法:

创建Vue项目 使用Vue CLI创建新项目:

vue create love-page
cd love-page

页面结构设计 在App.vue中构建基本结构:

<template>
  <div id="app">
    <div class="heart" @click="showMessage"></div>
    <div v-if="show" class="message">
      <h1>{{ message }}</h1>
      <button @click="changeHeart">❤️</button>
    </div>
  </div>
</template>

添加交互逻辑

<script>
export default {
  data() {
    return {
      show: false,
      message: '我喜欢你!',
      heartColor: 'red'
    }
  },
  methods: {
    showMessage() {
      this.show = true
    },
    changeHeart() {
      this.heartColor = this.heartColor === 'red' ? 'pink' : 'red'
    }
  }
}
</script>

样式设计

<style>
.heart {
  width: 100px;
  height: 100px;
  background-color: v-bind(heartColor);
  transform: rotate(45deg);
  margin: 100px auto;
  cursor: pointer;
  position: relative;
}

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

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

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

.message {
  text-align: center;
  animation: fadeIn 2s;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
</style>

进阶效果实现

添加动画效果 安装animate.css库:

vue实现表白

npm install animate.css

在main.js中引入:

import 'animate.css'

使用动画类名:

<h1 class="animate__animated animate__bounceIn">{{ message }}</h1>

添加背景音乐

<audio autoplay loop>
  <source src="./assets/love.mp3" type="audio/mpeg">
</audio>

添加照片墙

vue实现表白

<div class="photo-wall">
  <img 
    v-for="(photo, index) in photos" 
    :key="index" 
    :src="photo" 
    @click="enlargePhoto(index)"
    class="photo"
  >
</div>

部署上线

构建项目

npm run build

部署到GitHub Pages 安装gh-pages:

npm install gh-pages --save-dev

在package.json中添加:

"scripts": {
  "deploy": "gh-pages -d dist"
}

运行部署命令:

npm run deploy

以上方法结合了Vue的响应式特性和CSS动画效果,可以创建出富有情感表达的表白页面。根据实际需求可以进一步添加更多个性化元素和交互功能。

标签: vue
分享给朋友:

相关文章

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <tem…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以通…

vue实现换行

vue实现换行

Vue 中实现换行的几种方法 在 Vue 中实现换行可以通过多种方式,具体取决于使用场景和需求。以下是常见的几种方法: 使用 HTML 的 <br> 标签 在模板中直接使用 <br…

vue实现list

vue实现list

Vue 实现列表渲染 在 Vue 中,可以使用 v-for 指令来渲染列表。v-for 指令基于一个数组或对象来渲染一个列表,可以遍历数组或对象的属性。 基本列表渲染 <template>…

vue实现slot

vue实现slot

Vue 中的 Slot 实现方法 Vue 的 slot 是一种内容分发机制,允许父组件向子组件插入内容。以下是几种常见的 Slot 实现方式: 默认 Slot 子组件通过 <slot>…

vue 实现平面

vue 实现平面

Vue 实现平面的方法 在 Vue 中实现平面效果通常涉及 CSS 样式、UI 框架或自定义组件的使用。以下是几种常见方法: 使用 CSS 样式 通过 Vue 的样式绑定或 scoped CSS 为…