首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用JavaScript制作动态表白页面

用JavaScript制作动态表白页面

原创
作者头像
临在linzai
修改2025-10-31 11:34:19
修改2025-10-31 11:34:19
1350
举报

## 前言

最近在抖音上刷到这种文字表白特效,觉得挺有意思的,就想着自己也能用代码实现一个,虽然实现得比较基础,但效果还挺像那么回事!分享出来给大家参考,也期待大佬们给出更好的实现方案~

### 实现效果:

在屏幕内随机出现div盒子,位置随机,内容随机选,要求动态的一个个浅出

**css部分**

代码语言:txt
复制
div {
    width: 200px;
    height: 100px;
    text-align: center;
    line-height: 100px;
}

* {
    margin: 0;
    padding: 0;
}

**js部分:** <br/>

**准备数组**

代码语言:txt
复制
//表白话语
let count =['我爱你','想你了','想见你','等你回来','你是我的唯一','永远在一起','思念如潮','心中有你','每天都想你','无法忘记你','期待与你相见','你是我的阳光','爱你无条件','陪伴是最长情的告白','你是我生命的意义','每时每刻都想你','心跳为你加速','与你共度美好时光','爱意满满','你是我最珍贵的宝藏'];

//背景颜色
let colors = ['#FF5733','#33FF57','#3357FF','#F333FF','#33FFF5','#F5FF33','#FF33A8','#A833FF','#33FFA8','#FFA833'];

**实现思路**

1. **document.createElement** 来直接创建一个div盒子,用一个变量 **hzh** 接收

2. 给 **hzh** 添加css属性

3. **Math.random** 随机数来随机选取数组中的元素

4. **setInterval** 来实现盒子创建的时间差

5. **setTimeout** 中使用css中的 **opacity** 来实现盒子的浅出效果

**实现步骤**

代码语言:txt
复制

let i = 100 //盒子数量
let time = setInterval(() => {
    const hzh = document.createElement('div') //创建div盒子
    hzh.textContent = count[Math.floor(Math.random() * count.length)];//选取随机文字
    //设置盒子样式
    hzh.style.position = 'absolute';//绝对定位 
    hzh.style.left = Math.random() * (window.innerWidth - 200) + 'px';//屏幕宽度减去自身的宽度
    hzh.style.top = Math.random() * (window.innerHeight - 100) + 'px';//屏幕高度减去自身的宽高
    hzh.style.transition = 'all 0.3s ease';//添加动画效果
    hzh.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];//选取随机颜色
    hzh.style.opacity = '0'; // 初始透明度
    document.body.appendChild(hzh);//将创建的元素添加到页面body中

    setTimeout(() => {
        hzh.style.opacity = '1'; //最终透明度
    }, 100);

    if (i-- < 0) {
        clearInterval(time)//清除定时器
    }
}, 20);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档