首页  >  文章  >  web前端  >  建立时事通讯注册表单网站

建立时事通讯注册表单网站

王林
王林原创
2024-08-31 06:34:33341浏览

Build a Newsletter Signup Form Website

介绍

开发者们大家好!我很高兴分享我的最新项目:时事通讯注册表。对于那些希望创建一个实用且具有视觉吸引力的表单的人来说,该项目非常适合使用 HTML、CSS 和 JavaScript 收集新闻通讯的用户电子邮件地址。这是增强前端开发技能和构建管理订阅的有用工具的好方法。

项目概况

新闻通讯注册表是一个网络应用程序,旨在允许用户订阅新闻通讯。该表单包括电子邮件验证,并在成功订阅后显示成功消息。该项目采用简洁且交互式的设计,演示了如何创建实用且用户友好的表单。

特征

  • 电子邮件验证:确保用户在提交之前输入有效的电子邮件地址。
  • 成功消息:订阅成功后显示确认消息。
  • 响应式设计:表单完全响应,确保它在桌面和移动设备上看起来都很棒。

使用的技术

  • HTML:提供时事通讯注册表单的结构。
  • CSS:设置表单样式,使其具有视觉吸引力且用户友好。
  • JavaScript:处理电子邮件验证并根据用户输入显示成功消息。

项目结构

以下是项目结构的概述:

Newsletter-Signup-Form/
├── index.html
├── style.css
└── script.js
  • index.html:包含新闻通讯注册表单的 HTML 结构。
  • style.css:包含 CSS 样式以创建现代且响应式的设计。
  • script.js:管理交互元素并处理电子邮件验证和成功消息传递。

安装

要开始该项目,请按照以下步骤操作:

  1. 克隆存储库

    git clone https://github.com/abhishekgurjar-in/Newsletter-Signup-Form.git
    
  2. 打开项目目录:

    cd Newsletter-Signup-Form
    
  3. 运行项目:

    • 在网络浏览器中打开 index.html 文件以查看新闻通讯注册表。

用法

  1. 在网络浏览器中打开网站
  2. 在输入字段中输入您的电子邮件地址
  3. 点击订阅按钮提交您的电子邮件。
  4. 查看订阅成功后显示的成功消息

代码说明

超文本标记语言

index.html 文件定义新闻通讯注册表单的结构,包括输入字段、按钮和结果显示区域。这是一个片段:

8b05045a5be5764f313ed5b9168a17e6
49099650ebdc5f3125501fa170048923
93f0f5c25f18dab9d176bd4f6de5d30e
  1fc2df4564f5324148703df3b6ed50c1
  4f2fb0231f24e8aef524fc9bf9b9874f
  b2386ffb911b14667cb8f0f91ea547a7Newsletter Signup Form6e916e0f7d1e588d4f442bf645aedb2f
  a565cfc5beb6e6a8c6ba642934395a39
  468dcf7b0ee61aef03af1a1fbe6725fc
  5de102113aede4703971b3b780c58efb2cacc6d41bbb37262a98f745aa00fbf0
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
  4883ec0eb33c31828b7c767c806e14c7
    8f9e4409b06fde1ff1d3a80f075ca0ed
      641e0de5ce410c86c3a093b6b324b956
        4a249f0d628e2318394fd9b75b4636b1Stay Updated!473f0a7621bec819994bb5020d29372a
        e388a4556c0f65e1904146cc1a846beeJoin our mailing list to receive updates and promotions.94b3e26ee717c64999d7867364b1b4a3
        9c1c3883d21d24a82adc94e97e20713b
          e388a4556c0f65e1904146cc1a846beeEmail Address94b3e26ee717c64999d7867364b1b4a3
          f50061566a3685479c7d3b0d5d936071Valid Email Required94b3e26ee717c64999d7867364b1b4a3
        16b28748ea4df4d9c2150843fecfba68
        ff9c23ada1bcecdd1a0fb5d5a0f18437
          281932a54b782c94d20ff8498db12891
          169513d93b292361c90c726f0b3ca858
        f5a47148e367a6035fd7a2faa965022e
      16b28748ea4df4d9c2150843fecfba68
      b33314c2aece6845b814e24426768d58
        28ffba8a7704d9573fe0b1c02c12376a
      16b28748ea4df4d9c2150843fecfba68
    16b28748ea4df4d9c2150843fecfba68
  16b28748ea4df4d9c2150843fecfba68
  ffd6ba4147bda351239915f463e46e38
    e388a4556c0f65e1904146cc1a846beeMade with ❤️ by Abhishek Gurjar94b3e26ee717c64999d7867364b1b4a3
  16b28748ea4df4d9c2150843fecfba68
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

CSS

style.css 文件对时事通讯注册表单进行样式设计,使其更具吸引力且易于使用。以下是一些关键样式:

* {
  box-sizing: border-box;
}

body {
  font-family: Roboto, sans-serif;
  margin: 0;
  padding: 0;
  background-color: #36384e;
}

.container {
  max-width: 1240px;
  margin: 0 auto;
}

.box {
  gap: 20px;
  max-width: 70%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 30px;
  margin-inline: auto;
  background-color: white;
  border-radius: 15px;
}

.left-box {
  margin: 20px;
  width: 50%;
}

.left-box h1 {
  font-size: 50px;
}

.left-box p {
  font-size: 20px;
}

.email-text {
  display: flex;
  align-items: center;
  justify-content: center;
}

.success {
  display: inline;
}

.success-icon {
  width: 27px;
}

.email-text {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.not-valid {
  color: red;
  display: none;
}

input {
  font-size: 20px;
  width: 100%;
  height: 50px;
  border-radius: 15px;
  border: 2px solid black;
}

.button {
  font-size: 20px;
  width: 100%;
  border-radius: 15px;
  background-color: #242742;
  color: white;
}

.button:hover {
  background-color: #ff644b;
  cursor: pointer;
}

.right-box {
  width: 50%;
  margin: 0 20px;
}

.right-box img {
  width: 100%;
}

.footer {
  color: white;
  margin: 30px;
  text-align: center;
}

@media (max-width: 1200px) {
  .box {
    flex-direction: column-reverse;
  }
}

JavaScript

script.js 文件包含处理电子邮件验证和显示成功消息的逻辑。这是一个片段:

const submitBtn = document.getElementsByClassName("button")[0];
const emailInput = document.getElementsByClassName("email-input")[0];
const error = document.getElementsByClassName("not-valid")[0];
const box = document.getElementsByClassName("box")[0];

submitBtn.addEventListener("click", (event) => {
  event.preventDefault();
  const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
  const isValid = emailPattern.test(emailInput.value);

  if (!isValid) {
    error.style.display = "block";
  } else {
    error.style.display = "none"; // Hide the error message if email is valid
    box.style.display = "none";

    // Create and show the message
    const message = document.createElement("div");
    message.className = "message";
    message.innerHTML = `
      938598788b30f248187d965791fed44f
        d06cde061393e4022fbb4cd7cf443567
        4a249f0d628e2318394fd9b75b4636b1Thanks for subscribing!473f0a7621bec819994bb5020d29372a
        e388a4556c0f65e1904146cc1a846bee
          A confirmation email has been sent to ${emailInput.value}. Please open
          it and click the button inside to confirm your subscription.
        94b3e26ee717c64999d7867364b1b4a3
        3ce38003a7ba6de8604d8636abf55d8fDismiss message2e9b454fa8428549ca2e64dfac4625cd
      16b28748ea4df4d9c2150843fecfba68`;

    // Append the message to the body
    document.body.appendChild(message);

    // Select the close button from the newly created message element
    const closeBtn = message.querySelector(".closeBtn");
    closeBtn.addEventListener("click", () => {
      message.remove();
      location.reload(); // Reload the website
    });
  }
});

现场演示

您可以在此处查看时事通讯注册表项目的现场演示。

结论

创建时事通讯注册表单是应用前端开发技能来构建实用且引人入胜的工具的绝佳方法。该项目演示了如何创建可用于管理电子邮件订阅的交互式响应式表单。我希望它能激励您构建自己的工具并提高您的 Web 开发技能。快乐编码!

制作人员

这个项目是我在 Web 开发方面持续学习之旅的一部分。

作者

  • 阿布舍克·古贾尔
    • GitHub 简介

以上是建立时事通讯注册表单网站的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn