HTML+CSS+JAVASCRIPT实现——情人节表白情书

简介: 本文主要介绍如何使用HTML三件套来实现制作一封情人节表白情书,富含情谊与爱,打动女生的心灵

本文主要介绍如何使用HTML三件套来实现制作一封情人节表白情书,富含情谊与爱,打动女生的心灵



书信效果图

image.pngimage.pngimage.png


HTML部分(letter.html)

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>写给你的一封信</title><linkrel="stylesheet"href="letter.css"></head><body><divclass="card"><divclass="text content">        i love you
</div><divclass="textTwo content">        Can you touch my heart
</div><divclass="heart content"></div></div><divid="box"></div><scriptsrc="letter.js"></script></body></html>

CSS部分(letter.css)

* {
    margin: 0;
    padding: 0;
}
body {
    width: 100vw;
    height: 100vh;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #d9afd9;
background-image: linear-gradient(0deg, #d9afd9 0%, #97d9e1 100%);
}
.card {
    width: 700px;
    height: 300px;
    background-color: #f5efe6;
    color: #334756;
    box-shadow: 0px 0px 22px 5px rgb(237, 237, 237);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    font-size: 2.5em;
    font-family: '楷体';
    position: relative;
    /* 使盒子具备透视效果 */
    transform-style: preserve-3d;
    transform: perspective(900px) rotateX(23deg);
}
.card::before,
.card::after {
    content: '';
    width: 50%;
    height: 100%;
    color: #b7c4cf;
    font-size: 40px;
    position: absolute;
    font-family: '华文行楷';
}
.card::before {
    content: '写给你的';
    left: 0;
    top: 0;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    transition: 2s;
    transform-origin: left;
}
.card::after {
    content: '一封书信';
    right: 0;
    top: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    transform-origin: right;
    transition: 2s;
}
.card:hover::before {
    transform: rotateY(-180deg);
}
.card:hover::after {
    transform: rotateY(180deg);
}
.content {
    opacity: 0;
    transition: 2s;
}
.card:hover .content {
    opacity: 1;
}
/* 心动效果 */
/* 因为写动画太琐碎了 所以偷个懒 这里就不再写了 */
@keyframes change {
    30% {
      transform: rotate(45deg) scale(1.1) translateX(-70%);
    }
    40% {
      transform: rotate(45deg) scale(1.3) translateX(-70%);
    }
    45% {
      transform: rotate(45deg) scale(0.9) translateX(-70%);
    }
    50% {
      transform: rotate(45deg) scale(0.5) translateX(-70%);
    }
    70% {
      transform: rotate(45deg) scale(1) translateX(-70%);
    }
    80% {
      transform: rotate(45deg) scale(1.5) translateX(-70%);
    }
    90% {
      transform: rotate(45deg) scale(0.7) translateX(-70%);
    }
    95% {
      transform: rotate(45deg) scale(1.5) translateX(-70%);
    }
    100% {
      transform: rotate(45deg) scale(1.1) translateX(-70%);
    }
  } 
  /* cv工程师 嘿嘿嘿 */
  .heart {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 50px;
    height: 50px;
    /* pink yyds */
    background-color: pink;
    /* 往右下脚偏一些 */
    transform: rotate(45deg) translateX(-70%);
    /* 给这个爱心绑定动画 */
    /* 动画的名字 */
    animation-name: change;
    /* 动画持续时间 */
    animation-duration: 2.7s;
    /* 无限次播放动画 永远对你心动 */
    animation-iteration-count: infinite;
    cursor: pointer;
  }
/* 画爱心桃 */
.heart::before {
    content: '';
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: pink;
    position: absolute;
    transform: translateX(-25px);
}
.heart::after {
    content: '';
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: pink;
    position: absolute;
    transform: translateY(-25px);
}
/* 中间的字体样式有点丑  调一下 */
.text {
    color: #7D6E83;
    margin-top: 45px;
    font-family: '华文行楷';
}
.textTwo {
    color: #7D6E83;
    font-weight: bold;
    font-size: 25px;
    margin-top: 30px;
}
/* 神秘的box */
#box {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -200;
    opacity: 0;
    color: #00ffd1;
    padding-left: 5vw;
    padding-right: 5vw;
    padding-top: 13vh;
    width: 90vw;
    height: 87vh;
    text-align: center;
    background-image: url(bac.jpg);
    overflow: hidden;
    background-size: cover;
    font-size: 25px;
    font-family: '华文行楷';
    transition: opacity 7s;
}

JAVASCRIPT部分(letter.js)

letheart=document.querySelector('.heart')
letcard=document.querySelector('.card')
letbox=document.querySelector('#box')
heart.addEventListener('click',function(){
card.setAttribute("style","opacity:0");
letx=document.createElement("audio");
x.setAttribute("src", "qlx.mp3");
x.setAttribute("autoplay","autoplay");
// 打字效果leti=0letstr='从第一次望向你的眼眸开始,我就知道我已经沦陷了!<从前车马很慢,书信很远,一生只够爱一人!<现在繁华落幕,人心渐远,一生只愿爱一人,<你一眨眼,<温驯的小鹿有跳动一下,<柔软的暖风有轻拂一下,<遥远的星星有闪烁一下,<我也有心动<却不止一下。'letstrp=''functionprint()
{
if(str[i]=='<')
 {
document.getElementById("box").innerHTML=strp+"<br><br>+'|'";
strp+="<br><br>";
 }
else {
strp+=str[i];
box.innerHTML=strp+'|';
 }
i++;
}
setTimeout(() => {
letprintid=setInterval(() => {
print();
if(i==str.length)
clearInterval(printid);
        },190);  // 190毫秒打一个字,其实细心发现的话,这个项目还是有个小小的bug,无法用语言描述这个bug,如果你想优化的话 有一种简单的方法就是调快打字的速度,这样那个bug看起来就不会很明显,我太菜了 不会改那个bug}, 5500);  //5500毫秒开始打字// 背景出现functionappearBackground(){
setTimeout(()=>{
box.style.opacity=1},1500)
}
appearBackground()
})



背景图片(bac.jpg)

图片链接:http://175.178.184.206/admin/wyz%E8%87%AA%E5%BB%BA/letter/bac.jpg


背景音乐(qlx.mp3)

下面给出我的背景音乐 走马 的链接

http://175.178.184.206/admin/wyz%E8%87%AA%E5%BB%BA/letter/qlx.mp3


注意事项

以上三个文件须使用括号内的名字命名并且放在同一目录下才可

image.png



目录
相关文章
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
27天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
64 34
|
29天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
53 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
30天前
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
33 2
|
1月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
123 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
1月前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
79 33
|
2月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
116 24
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
86 5
|
3月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
120 7
|
3月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
58 5

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    45
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    55