使用 JavaScript 的动态按钮 UI onclick
来源:dev.to
时间:2024-08-23 14:36:47 320浏览 收藏
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是文章学习者,那么本文《使用 JavaScript 的动态按钮 UI onclick》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!
第三天
#100daysofmiva 编码挑战已经过去三天了。 ???
今天,我没有在后端做任何事情。我需要加强我的前端技能。我将使用 javascript 进行简单的按钮用户体验设计。您是否曾经在任何网站或应用程序上提交过表单,而不仅仅是等待响应,您可以看到这些精美的文本在您单击的按钮上发生变化。
这就是我今天要编码的内容。走吧!???
我们将使用基本的 html 和动态 js 开发客户端(也称为前端)。
超文本标记语言
对于 html,我编写了一个带有一个输入和一个提交按钮的基本表单。
<div> <h2>button ui</h2> <div id="message"></div> <form id="linkform" onsubmit="submitform(event)"> <label for="rand_word">enter random word</label> <input type="text" id="rand_word" name="rand_word" placeholder="e.g what is life?" required /> <button type="submit" id="submitbutton">submit</button> </form> </div>
此表单是一个简单的 html 结构,允许用户输入随机单词并提交。以下是每个元素的细分:
1.<div>
- 用途:充当表单及其相关元素的容器。
- 内容: - 标有“按钮 ui”的标题 (<h2>)。
- 消息区域(<div id="message">),表单提交后向用户显示反馈。 - 实际表单(<form>),其中包含一个输入字段和一个提交按钮。
2. <h2>按钮 ui</h2>
- 用途:为包含表单的页面部分提供标题。
- 文字:“按钮 ui”。
3. <div id="消息"></div>
- 用途:此 div 用于向用户显示消息,例如在提交表单后确认他们输入的内容。最初,它是空的并且可能被隐藏,但它将填充文本并在表单提交后显示。
4. <form id="linkform" onsubmit="submitform(event)">
- 用途:这是将输入字段和提交按钮组合在一起的表单元素。
属性:
- id="linkform":为表单提供唯一标识符,以便可以在 javascript 中引用。
- onsubmit="submitform(event)":指定提交表单时要调用的 javascript 函数。 submitform(event) 函数旨在处理表单提交过程并防止重新加载页面的默认行为。
5. <label for="rand_word">输入随机词</label>
- 用途:为输入字段提供标签,通过指示用户应输入的内容来提高可访问性。
- 属性: - for="rand_word":将标签与 id="rand_word" 的输入字段关联起来。
- 文字:“输入随机单词”。
6. <input type="text" id="rand_word" name="rand_word" placeholder="例如生命是什么?"必填 />
- 用途:这是用户输入随机单词的输入字段。
属性:
- type="text": 表示这是一个文本输入字段。
- id="rand_word":为输入提供唯一标识符,将其链接到标签并允许在 javascript 中引用它。
- name="rand_word": 这是提交表单时将发送的表单数据密钥的名称。
- placeholder="e.g what is life?":在用户输入任何内容之前在输入字段内提供提示,建议他们可能输入的内容的示例。
- required:使此字段成为必填字段,这意味着在用户输入某些内容之前无法提交表单。
7. <button type="submit" id="submitbutton">submit</button>
- 用途:这是用户点击提交表单的按钮。
属性:
- type="submit": 表示点击此按钮将提交表单数据。
- id="submitbutton": 为按钮提供唯一标识符,因此可以通过 javascript 轻松访问和修改。
- 文本:“提交”——这是按钮上显示的文本。
html 概要
- 用户交互:用户在输入字段中输入随机单词,然后单击“提交”按钮。提交表单时,将调用 submitform(event) javascript 函数,该函数处理提交过程(例如,显示消息、防止页面重新加载、可能将数据发送到服务器)。
- 用途:此表单可用于各种目的,例如收集用户输入、与后端服务交互,甚至只是在用户界面中演示表单处理。
javascript
<!-- JavaScript Code --> <script> function submitForm(event) { event.preventDefault(); // Prevent the form from submitting the default way const formData = new FormData(document.getElementById('linkForm')); const submitButton = document.getElementById('submitButton'); const message = document.getElementById('message'); const randWord = formData.get('rand_word'); // Get the value of the rand_word field let dotCount = 0; const updateDots = () => { dotCount = (dotCount + 1) % 4; return '.'.repeat(dotCount); }; const baseMessages = [ "Submitting", "Still working on it", "Hold on", "Almost done" ]; submitButton.innerText = `${baseMessages[0]}${updateDots()}`; submitButton.classList.add('submitting'); submitButton.disabled = true; message.style.display = 'none'; // Hide the message box initially // Generate a random delay between 1 and 10 seconds const delay = Math.floor(Math.random() * 9000) + 1000; if (delay > 2000) { let messageIndex = 0; const messageInterval = setInterval(() => { submitButton.innerText = `${baseMessages[messageIndex]}${updateDots()}`; if (dotCount === 0) { messageIndex = (messageIndex + 1) % baseMessages.length; } }, 500); // Clear the interval after the delay to stop the loop setTimeout(() => clearInterval(messageInterval), delay - 500); } // Simulate a wait time of random delay setTimeout(() => { message.innerText = 'You typed: ' + randWord; // Show the submitted data in the message box message.style.display = 'block'; submitButton.innerText = 'Submitted'; submitButton.classList.remove('submitting'); submitButton.classList.add('submitted'); // Reset the button state after 2 seconds setTimeout(() => { submitButton.innerText = 'Submit'; submitButton.classList.remove('submitted'); submitButton.disabled = false; }, 4000); document.getElementById('linkForm').reset(); // Reset the form fields }, delay); // Wait for the random delay before showing the message }</script>
此 javascript 代码处理表单提交过程,通过使用动画点和更改消息模拟动态等待期来提供增强的用户体验。
下面是结果
作为后端开发人员,我遇到的唯一问题是让点动画化。这花了一段时间,但我能够克服它。我期待着明天的编码??
点击此处预览最终结果 https://app.marvelly.com.ng/100daysofmiva/day-3/
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用 JavaScript 的动态按钮 UI onclick》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
264 收藏
-
335 收藏
-
283 收藏
-
416 收藏
-
482 收藏
-
304 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 541次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 506次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习