HTML、CSS和JavaScript编写的吹泡泡的网页代码和注释:

2023-10-18 01:52

本文主要是介绍HTML、CSS和JavaScript编写的吹泡泡的网页代码和注释:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下是使用HTML、CSS和JavaScript编写的吹泡泡的网页代码和注释:

<!DOCTYPE html>
<html>
<head><title>Bubble Blower</title><style>body {background-color: #f2f2f2;}#bubble {position: absolute;background-color: #ffffff;border-radius: 50%;box-shadow: 0px 0px 20px #ffffff;animation: bubble 3s ease-out;animation-fill-mode: forwards;}@keyframes bubble {0% {width: 0px;height: 0px;opacity: 1;}50% {width: 100px;height: 100px;opacity: 0.5;}100% {width: 200px;height: 200px;opacity: 0;}}</style>
</head>
<body><h1>Bubble Blower</h1><button onclick="blowBubble()">Blow Bubble</button><div id="bubble"></div><script>function blowBubble() {// 创建一个div元素作为泡泡var bubble = document.createElement("div");// 给泡泡设置idbubble.setAttribute("id", "bubble");// 将泡泡添加到body中document.body.appendChild(bubble);// 设置泡泡的位置为鼠标点击的位置bubble.style.left = event.clientX - 100 + "px";bubble.style.top = event.clientY - 100 + "px";}</script>
</body>
</html>

注释:

  1. <!DOCTYPE html>:声明文档类型为HTML5。
  2. <html>:HTML文档的根元素。
  3. <head>:文档头部,用于包含文档的元数据。
  4. <title>:文档的标题,显示在浏览器的标签页上。
  5. <style>:用于定义文档的样式。
  6. body:文档的主体部分。
  7. background-color:设置背景颜色为灰色。
  8. #bubble:选择id为bubble的元素。
  9. position:设置元素的定位方式为绝对定位。
  10. background-color:设置元素的背景颜色为白色。
  11. border-radius:设置元素的圆角半径为50%。
  12. box-shadow:设置元素的阴影效果。
  13. animation:设置元素的动画效果,使用名为bubble的动画,持续时间为3秒,缓动方式为ease-out。
  14. animation-fill-mode:设置动画结束后元素的状态,保持在最后一帧的状态。
  15. @keyframes bubble:定义名为bubble的动画。
  16. 0%:动画开始时元素的状态。
  17. 50%:动画进行到50%时元素的状态。
  18. 100%:动画结束时元素的状态。
  19. width:设置元素的宽度。
  20. height:设置元素的高度。
  21. opacity:设置元素的透明度。
  22. <h1>:定义文档的一级标题。
  23. <button>:定义一个按钮。
  24. onclick:设置按钮的点击事件。
  25. blowBubble():定义一个名为blowBubble的函数,用于创建泡泡。
  26. document.createElement("div"):创建一个div元素。
  27. setAttribute("id", "bubble"):给元素设置id属性为bubble。
  28. appendChild(bubble):将元素添加到文档中。
  29. event.clientX:获取鼠标点击的x坐标。
  30. event.clientY:获取鼠标点击的y坐标。
  31. style.left:设置元素的左边距。
  32. style.top:设置元素的上边距。

进阶优化版本

<!DOCTYPE html>
<html><head><title>Bubble Blower</title><style>* {margin: 0;padding: 0;}body {width: 100vw;height: 100vh;overflow: hidden;background-color: #3a3434;}#bubble {position: absolute;/* background-color: #ffffff; */border-radius: 50%;box-shadow: 0px 0px 20px #ffffff;animation: bubble 3s ease-out;animation-fill-mode: forwards;}@keyframes bubble {0% {width: 0px;height: 0px;opacity: 1;filter: hue-rotate(0);}50% {width: 100px;height: 100px;opacity: 0.5;}100% {width: 200px;height: 200px;opacity: 0;filter: hue-rotate(360deg);}}</style>
</head><body><h1>Bubble Blower</h1><!-- <button onclick="blowBubble()">Blow Bubble</button> --><!-- <div id="bubble"></div> --><script>let bodyEle = document.bodybodyEle.addEventListener("click", blowBubble)function blowBubble(event) {// 创建一个div元素作为泡泡var bubble = document.createElement("div");// 给泡泡设置idbubble.setAttribute("id", "bubble");// 将泡泡添加到body中document.body.appendChild(bubble);// 设置泡泡的位置为鼠标点击的位置bubble.style.left = event.clientX + "px";bubble.style.top = event.clientY + "px";bubble.style.backgroundColor=`rgb(${Math.floor(Math.random()*255)},${Math.floor(Math.random()*255)},${Math.floor(Math.random()*255)})`setTimeout(() => {bubble.remove()}, 3000)}let lastExecutedTime = 0;function blowBubbleJieLiu(event){let currentTime = Date.now();let timeSinceLastExecution = currentTime - lastExecutedTime;console.log(currentTime , lastExecutedTime);if (timeSinceLastExecution >= 50) {blowBubble(event)lastExecutedTime=currentTime}else{console.log("不行");return}}bodyEle.addEventListener("mousedown", blowBubble)bodyEle.addEventListener("mousemove", blowBubbleJieLiu)// 随机setInterval(() => {// 创建一个div元素作为泡泡let bubble = document.createElement("div");// 给泡泡设置idbubble.setAttribute("id", "bubble");// 将泡泡添加到body中document.body.appendChild(bubble);// 设置泡泡的位置为鼠标点击的位置w = Math.floor(Math.random()*window.innerWidth)h = Math.floor(Math.random()*window.innerHeight)bubble.style.left = w + "px";bubble.style.top = h + "px";setTimeout(() => {bubble.remove()}, 3000)}, 1500)</script>
</body></html>

这篇关于HTML、CSS和JavaScript编写的吹泡泡的网页代码和注释:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/229412

相关文章

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释