0

0

使用 JavaScript 的动态按钮 UI onclick

WBOY

WBOY

发布时间:2024-08-23 14:17:43

|

313人浏览过

|

来源于dev.to

转载

第三天

#100daysofmiva 编码挑战已经过去三天了。 ???

今天,我没有在后端做任何事情。我需要加强我的前端技能。我将使用 javascript 进行简单的按钮用户体验设计。您是否曾经在任何网站或应用程序上提交过表单,而不仅仅是等待响应,您可以看到这些精美的文本在您单击的按钮上发生变化。

使用 JavaScript 的动态按钮 UI onclick

这就是我今天要编码的内容。走吧!???

我们将使用基本的 html 和动态 js 开发客户端(也称为前端)。

立即学习Java免费学习笔记(深入)”;

超文本标记语言

对于 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)">

  • 用途:这是将输入字段和提交按钮组合在一起的表单元素。

属性

PathFinder
PathFinder

AI驱动的销售漏斗分析工具

下载
  • 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 代码处理表单提交过程,通过使用动画点和更改消息模拟动态等待期来提供增强的用户体验。

下面是结果

使用 JavaScript 的动态按钮 UI onclick

作为后端开发人员,我遇到的唯一问题是让点动画化。这花了一段时间,但我能够克服它。我期待着明天的编码??

点击此处预览最终结果 https://app.marvelly.com.ng/100daysofmiva/day-3/

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

323

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

293

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

178

2025.08.07

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

531

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

576

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

760

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

6231

2023.08.17

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP与Ajax极速入门
PHP与Ajax极速入门

共8课时 | 11.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号