日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:52010
  • 待審:67
  • 小程序:12
  • 文章:1106242
  • 會員:784

第三天

#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.

用途:充當表單及其相關元素的容器。

內容: – 標有“按鈕 ui”的標題 (

)。

消息區域(),表單提交后向用戶顯示反饋。 – 實際表單(),其中包含一個輸入字段和一個提交按鈕。

2.

按鈕 ui

用途:為包含表單的頁面部分提供標題。

文字:“按鈕 ui”。

3.

用途:此 div 用于向用戶顯示消息,例如在提交表單后確認他們輸入的內容。最初,它是空的并且可能被隱藏,但它將填充文本并在表單提交后顯示。

4.

用途:這是將輸入字段和提交按鈕組合在一起的表單元素。

屬性

id=”linkform”:為表單提供唯一標識符,以便可以在 javascript 中引用。

onsubmit=”submitform(event)”:指定提交表單時要調用的 javascript 函數。 submitform(event) 函數旨在處理表單提交過程并防止重新加載頁面的默認行為。

5.

用途:為輸入字段提供標簽,通過指示用戶應輸入的內容來提高可訪問性。

屬性: – for=”rand_word”:將標簽與 id=”rand_word” 的輸入字段關聯起來。

文字:“輸入隨機單詞”。

6.

用途:這是用戶輸入隨機單詞的輸入字段。

屬性

type=”text”: 表示這是一個文本輸入字段。

id=”rand_word”:為輸入提供唯一標識符,將其鏈接到標簽并允許在 javascript 中引用它。

name=”rand_word”: 這是提交表單時將發送的表單數據密鑰的名稱。

placeholder=”e.g what is life?”:在用戶輸入任何內容之前在輸入字段內提供提示,建議他們可能輸入的內容的示例。

required:使此字段成為必填字段,這意味著在用戶輸入某些內容之前無法提交表單。

7.

用途:這是用戶點擊提交表單的按鈕。

屬性

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 onclick UI 動態 按鈕
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 52010

    網站

  • 12

    小程序

  • 1106242

    文章

  • 784

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定