简单的MBTI测试的Web网页的HTML、CSS和JS代码,以及解析注释:

2023-10-15 01:04

本文主要是介绍简单的MBTI测试的Web网页的HTML、CSS和JS代码,以及解析注释:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一个简单的MBTI测试的Web网页的HTML、CSS和JS代码,以及解析注释:

HTML代码:

<!DOCTYPE html>
<html>
<head><title>MBTI Test</title><link rel="stylesheet" type="text/css" href="style.css">
</head>
<body><div class="container"><h1>MBTI Test</h1><p>请回答以下问题:</p><form><div class="question"><p>1. 你更喜欢:</p><label><input type="radio" name="q1" value="E">A. 外向、喜欢社交</label><label><input type="radio" name="q1" value="I">B. 内向、喜欢独处</label></div><div class="question"><p>2. 你更关注:</p><label><input type="radio" name="q2" value="S">A. 具体的细节和事实</label><label><input type="radio" name="q2" value="N">B. 抽象的概念和理论</label></div><div class="question"><p>3. 你更喜欢:</p><label><input type="radio" name="q3" value="T">A. 逻辑和分析</label><label><input type="radio" name="q3" value="F">B. 情感和价值</label></div><div class="question"><p>4. 你更倾向于:</p><label><input type="radio" name="q4" value="J">A. 计划和组织</label><label><input type="radio" name="q4" value="P">B. 灵活和开放</label></div><button type="submit">提交</button></form></div><script src="script.js"></script>
</body>
</html>

CSS代码:

.container {max-width: 600px;margin: 0 auto;padding: 20px;text-align: center;
}.question {margin-bottom: 20px;text-align: left;
}

JS代码:

// 定义问题和答案的数组
var questions = [{question: "你更喜欢:",answers: [{ type: "E", content: "A. 外向、喜欢社交" },{ type: "I", content: "B. 内向、喜欢独处" }]},{question: "你更关注:",answers: [{ type: "S", content: "A. 具体的细节和事实" },{ type: "N", content: "B. 抽象的概念和理论" }]},{question: "你更喜欢:",answers: [{ type: "T", content: "A. 逻辑和分析" },{ type: "F", content: "B. 情感和价值" }]},{question: "你更倾向于:",answers: [{ type: "J", content: "A. 计划和组织" },{ type: "P", content: "B. 灵活和开放" }]}
];// 获取DOM元素
var form = document.querySelector("form");
var result = document.createElement("p");// 绑定提交事件
form.addEventListener("submit", function(event) {event.preventDefault();// 计算分数var scores = { E: 0, I: 0, S: 0, N: 0, T: 0, F: 0, J: 0, P: 0 };var answers = form.querySelectorAll("input[type='radio']:checked");for (var i = 0; i < answers.length; i++) {scores[answers[i].value]++;}// 根据分数计算MBTI类型var mbtiType = "";if (scores.E > scores.I) {mbtiType += "E";} else {mbtiType += "I";}if (scores.S > scores.N) {mbtiType += "S";} else {mbtiType += "N";}if (scores.T > scores.F) {mbtiType += "T";} else {mbtiType += "F";}if (scores.J > scores.P) {mbtiType += "J";} else {mbtiType += "P";}// 显示结果result.textContent = "您的MBTI类型为:" + mbtiType;form.appendChild(result);
});

解析注释:

这个网页包含了四个问题,每个问题有两个答案选项。用户选择答案后,点击提交按钮,会计算用户的分数,并根据分数计算出MBTI类型,最后显示在页面上。

HTML部分包含了一个标题、四个问题和一个提交按钮。每个问题包含两个答案选项,使用单选按钮实现。CSS部分定义了一些基本样式,使页面看起来更美观。

JS部分定义了一个问题和答案的数组,包含四个问题和每个问题的两个答案选项。当用户点击提交按钮时,会计算用户的分数,并根据分数计算出MBTI类型。最后,将MBTI类型显示在页面上。

计算分数的方法是通过循环遍历所有选中的单选按钮,并将选中答案的类型加到对应的分数上。计算MBTI类型的方法是通过比较每个维度的分数大小,将分数较高的选项作为MBTI类型的值。最后,将MBTI类型显示在页面上。

这篇关于简单的MBTI测试的Web网页的HTML、CSS和JS代码,以及解析注释:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获