当前位置:首页 > 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 实现长列表的优化方案 虚拟滚动技术 虚拟滚动是处理长列表的高效方式,仅渲染可视区域内的元素。通过计算滚动位置动态加载和卸载DOM节点,大幅减少内存占用和渲染压力。 <template&…

vue查看更多怎么实现

vue查看更多怎么实现

实现 Vue 的“查看更多”功能 数据截取与显示控制 通过 v-if 或 v-show 控制内容的显示与隐藏。初始状态下只显示部分内容,点击“查看更多”后展开完整内容。 <template&g…

vue实现继承语法糖

vue实现继承语法糖

在Vue中实现继承可以通过多种方式模拟类继承的效果,以下是常见的几种方法: 使用mixins实现逻辑复用 通过Vue的mixins机制共享组件选项,达到类似继承的效果: const BaseCom…

vue实现返回

vue实现返回

返回按钮功能实现 在Vue中实现返回功能通常有两种方式:使用浏览器历史记录的history.back()或结合Vue Router进行编程式导航。以下是具体实现方法: 使用浏览器API metho…

vue 实现筛选

vue 实现筛选

实现筛选功能的基本方法 在Vue中实现筛选功能通常涉及以下几个核心步骤: 数据绑定与筛选逻辑 使用v-model绑定筛选条件到Vue实例的数据属性,结合计算属性实现动态筛选: data() {…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…