当前位置:首页 > JavaScript

js实现贺卡

2026-04-05 22:57:03JavaScript

使用HTML、CSS和JavaScript创建动态贺卡

创建一个简单的贺卡需要结合HTML结构、CSS样式和JavaScript交互效果。以下是实现步骤:

HTML结构

<!DOCTYPE html>
<html>
<head>
    <title>电子贺卡</title>
    <style>
        /* CSS样式将放在这里 */
    </style>
</head>
<body>
    <div id="card-container">
        <div id="card" onclick="flipCard()">
            <div class="front">
                <h1>生日快乐!</h1>
                <p>点击打开贺卡</p>
            </div>
            <div class="back">
                <h2>给亲爱的朋友</h2>
                <p>愿你天天开心,心想事成!</p>
                <button onclick="playMusic()">播放音乐</button>
            </div>
        </div>
    </div>

    <audio id="bgMusic" src="happy-birthday.mp3"></audio>

    <script>
        // JavaScript代码将放在这里
    </script>
</body>
</html>

CSS样式

#card-container {
    perspective: 1000px;
    width: 300px;
    height: 400px;
    margin: 50px auto;
}

#card {
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 1s;
    cursor: pointer;
}

#card.flipped {
    transform: rotateY(180deg);
}

#card .front, #card .back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

#card .front {
    background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
    color: white;
}

#card .back {
    background: linear-gradient(135deg, #a1c4fd 0%, #c2e9fb 100%);
    transform: rotateY(180deg);
}

button {
    margin-top: 20px;
    padding: 10px 20px;
    background-color: #4CAF50;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}

button:hover {
    background-color: #45a049;
}

JavaScript交互

js实现贺卡

function flipCard() {
    const card = document.getElementById('card');
    card.classList.toggle('flipped');
}

function playMusic() {
    const music = document.getElementById('bgMusic');
    music.play();
}

// 添加动画效果
document.addEventListener('DOMContentLoaded', function() {
    const card = document.getElementById('card');
    card.style.transform = 'rotateY(0deg)';
});

添加更多交互功能

添加图片和文字输入

<div class="back">
    <img src="celebration.png" alt="庆祝" width="100">
    <h2 contenteditable="true">给亲爱的朋友</h2>
    <p contenteditable="true">编辑您的祝福语...</p>
    <button onclick="saveCard()">保存贺卡</button>
</div>

JavaScript保存功能

js实现贺卡

function saveCard() {
    const card = document.getElementById('card');
    html2canvas(card).then(canvas => {
        const link = document.createElement('a');
        link.download = '贺卡.png';
        link.href = canvas.toDataURL();
        link.click();
    });
}

使用第三方库增强效果

添加confetti效果

<script src="https://cdn.jsdelivr.net/npm/canvas-confetti@1.5.1/dist/confetti.browser.min.js"></script>

<script>
function playMusic() {
    const music = document.getElementById('bgMusic');
    music.play();
    confetti({
        particleCount: 100,
        spread: 70,
        origin: { y: 0.6 }
    });
}
</script>

添加动画库

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css">

<script>
function flipCard() {
    const card = document.getElementById('card');
    card.classList.toggle('flipped');
    card.classList.add('animate__animated', 'animate__flipInY');
}
</script>

完整示例代码整合

将上述代码片段整合到一个HTML文件中,确保包含所有必要的元素:

  1. 基本的HTML结构
  2. CSS样式(可以放在<style>标签中)
  3. JavaScript交互代码
  4. 任何必要的第三方库引用

用户可以根据需要修改文本内容、颜色方案、图片和音乐文件,创建个性化的电子贺卡。

标签: 贺卡js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…