Java Script網頁設計案例

TechSynapse發表於2024-08-29

1. JavaScript網頁設計案例

下面我將提供一個簡單的JavaScript網頁設計案例,該案例將實現一個動態的待辦事項列表(Todo List)。使用者可以在頁面上新增新的待辦事項,標記它們為已完成,以及刪除它們。這個案例將使用HTML來構建頁面結構,CSS來美化頁面,以及JavaScript來新增動態功能。

1.1 HTML (index.html)

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Todo List</title>  
    <link rel="stylesheet" href="style.css">  
</head>  
<body>  
    <h1>Todo List</h1>  
    <input type="text" id="todoInput" placeholder="Add new todo...">  
    <button onclick="addTodo()">Add Todo</button>  
    <ul id="todoList">  
        <!-- Todo items will be added here -->  
    </ul>  
  
    <script src="script.js"></script>  
</body>  
</html>

1.2 CSS (style.css)

body {  
    font-family: Arial, sans-serif;  
    margin: 20px;  
    padding: 0;  
}  
  
#todoList {  
    list-style-type: none;  
    padding: 0;  
}  
  
#todoList li {  
    margin: 10px 0;  
    padding: 10px;  
    background-color: #f4f4f4;  
    border: 1px solid #ddd;  
    display: flex;  
    align-items: center;  
    justify-content: space-between;  
}  
  
#todoList li.completed {  
    text-decoration: line-through;  
    opacity: 0.5;  
}  
  
#todoInput {  
    padding: 10px;  
    margin-right: 10px;  
    width: calc(100% - 120px);  
}  
  
button {  
    padding: 10px 20px;  
    cursor: pointer;  
}

1.3 JavaScript (script.js)

function addTodo() {  
    const input = document.getElementById('todoInput');  
    const list = document.getElementById('todoList');  
    const itemText = input.value.trim();  
  
    if (itemText) {  
        const itemElement = document.createElement('li');  
        itemElement.textContent = itemText;  
  
        // Checkbox for marking todo as completed  
        const checkbox = document.createElement('input');  
        checkbox.type = 'checkbox';  
        checkbox.onclick = function() {  
            itemElement.classList.toggle('completed', this.checked);  
        };  
  
        // Button for deleting todo  
        const deleteButton = document.createElement('button');  
        deleteButton.textContent = 'Delete';  
        deleteButton.onclick = function() {  
            list.removeChild(itemElement);  
        };  
  
        // Append elements to the list item  
        itemElement.appendChild(checkbox);  
        itemElement.appendChild(document.createTextNode('\u00A0')); // Add space  
        itemElement.appendChild(deleteButton);  
  
        // Append list item to the list  
        list.appendChild(itemElement);  
  
        // Clear input field  
        input.value = '';  
    }  
}  
  
// Optionally, add event listener to input field for Enter key press  
document.getElementById('todoInput').addEventListener('keypress', function(event) {  
    if (event.key === 'Enter') {  
        addTodo();  
    }  
});

1.4說明

(1)HTML 部分定義了頁面的基本結構,包括一個輸入框用於輸入待辦事項,一個按鈕用於新增待辦事項,以及一個無序列表用於顯示待辦事項。

(2)CSS 部分美化了頁面,包括待辦事項列表的樣式、輸入框和按鈕的樣式。

(3)JavaScript 部分實現了動態功能:

  • 監聽“新增待辦事項”按鈕的點選事件,並呼叫 addTodo 函式。
  • addTodo 函式從輸入框中獲取文字,建立一個新的列表項,併為其新增核取方塊和刪除按鈕。
  • 核取方塊用於標記待辦事項為已完成,點選時切換列表項的樣式。
  • 刪除按鈕用於從列表中刪除待辦事項。
  • 監聽輸入框的 keypress 事件,以便在按下 Enter 鍵時也能新增待辦事項。

這個案例展示瞭如何使用HTML、CSS和JavaScript來建立一個具有基本動態功能的網頁應用。

2. JavaScript網頁設計案例不同的功能和設計思路展示

除了上述的待辦事項列表案例外,還有許多其他類似的JavaScript網頁設計案例,這些案例展示了不同的功能和設計思路。以下是一些常見的案例及其簡要描述:

(1)功能描述

  • 展示一組圖片,並支援點選放大檢視。
  • 使用HTML和CSS建立圖片網格佈局。
  • 使用JavaScript處理圖片點選事件,顯示放大的圖片。

(2)程式碼示例(簡化版):

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Image Gallery</title>  
    <style>  
        .gallery img {  
            width: 100px; /* 或其他尺寸 */  
            height: auto;  
            margin: 10px;  
            cursor: pointer;  
        }  
        .modal {  
            display: none;  
            position: fixed;  
            z-index: 1;  
            /* 其他模態框樣式 */  
        }  
        .modal-content {  
            /* 放大圖片的樣式 */  
        }  
    </style>  
</head>  
<body>  
  
<div class="gallery">  
    <img src="image1.jpg" alt="Image 1">  
    <img src="image2.jpg" alt="Image 2">  
    <!-- 更多圖片 -->  
</div>  
  
<div id="modal" class="modal">  
    <span class="close">&times;</span>  
    <img class="modal-content" id="modalImg">  
</div>  
  
<script>  
    // JavaScript 程式碼,用於處理點選事件和顯示模態框  
    // ...(省略詳細實現)  
</script>  
  
</body>  
</html>

2.2 簡易天氣應用(Weather App)

(1)功能描述

  • 獲取並顯示天氣資訊。
  • 使用天氣API(如OpenWeatherMap)獲取實時天氣資料。
  • 使用JavaScript動態更新頁面內容。

(2)程式碼示例(簡化版,需要替換API金鑰):

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>Weather App</title>  
</head>  
<body>  
  
<h1>Weather App</h1>  
<input type="text" id="cityInput" placeholder="Enter city">  
<button id="getWeather">Get Weather</button>  
<div id="weatherResult"></div>  
  
<script>  
    const apiKey = 'YOUR_API_KEY'; // 替換為你的API金鑰  
  
    document.getElementById('getWeather').onclick = function() {  
        const city = document.getElementById('cityInput').value;  
        fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`)  
            .then(response => response.json())  
            .then(data => {  
                const temp = data.main.temp;  
                const weatherDescription = data.weather[0].description;  
                document.getElementById('weatherResult').innerHTML = `Temperature: ${temp}°C<br>Description: ${weatherDescription}`;  
            })  
            .catch(error => {  
                document.getElementById('weatherResult').innerHTML = 'City not found.';  
            });  
    };  
</script>  
  
</body>  
</html>

2.3 動態表格(Dynamic Table)

(1)功能描述

  • 展示一個表格,表格內容可以動態新增、刪除或修改。
  • 使用HTML建立表格結構。
  • 使用JavaScript處理資料的增刪改操作,並動態更新表格內容。

(2)程式碼示例(由於篇幅限制,僅提供概念性描述):

  • 建立一個HTML表格,包含表頭和若干行。
  • 使用JavaScript新增按鈕或輸入框,以便使用者輸入新資料。
  • 編寫JavaScript函式來處理新增、刪除和修改資料的邏輯。
  • 使用DOM操作動態更新表格內容。

這些案例涵蓋了網頁設計的不同方面,從基本的圖片展示到實用的天氣查詢,再到動態的資料處理。它們都是學習JavaScript網頁開發的良好起點,並可以根據實際需求進行擴充套件和定製。

相關文章