How to Create an Online To Do List in Hostinger Website Builder
Adding an online to-do list to your website can help you and your visitors stay organized and track tasks efficiently. With Hostinger Website Builder, you can easily integrate a functional to-do list using a simple code snippet. In this guide, I’ll show you step by step how to create an interactive online to-do list inside Hostinger Website Builder.
Step 1: Access Hostinger Website Builder
- Log in to your Hostinger account.
- Navigate to the Websites section.
- Find your website and click Edit Website to open Hostinger Website Builder.
Step 2: Create a New Page for the To-Do List
- Click Add Page in the website builder.
- Choose New Empty Page and name it something like “To-Do List” or “Online Task Manager.”
- Click Create to add the new page to your site.
Step 3: Insert a Custom Code Element
- Go to the left-side menu and select Add Element.
- Scroll down to find the Embed Code element.
- Drag and drop it onto your newly created page.
- Click on the code box, delete any existing code, and paste the to-do list code :
<!-- To-Do List Tool -->
<div id="todo-container">
<h2>To-Do List</h2>
<!-- Input Field for New Task -->
<div class="input-container">
<input type="text" id="task-input" placeholder="Add a new task..." />
<select id="priority-select">
<option value="low">Low Priority</option>
<option value="medium">Medium Priority</option>
<option value="high">High Priority</option>
</select>
<button id="add-btn">Add Task</button>
</div>
<!-- Clear All Button -->
<button id="clear-btn">Clear All Tasks</button>
<!-- List of Tasks -->
<ul id="todo-list"></ul>
</div>
<!-- Styles for the To-Do List -->
<style>
#todo-container {
width: 100%;
max-width: 600px;
margin: 50px auto;
padding: 30px;
background-color: #fff;
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
font-family: 'Arial', sans-serif;
}
h2 {
text-align: center;
color: #444;
font-size: 24px;
margin-bottom: 20px;
}
.input-container {
display: flex;
justify-content: space-between;
margin-bottom: 16px;
}
#task-input {
width: calc(100% - 160px);
padding: 12px 16px;
font-size: 16px;
border-radius: 6px;
border: 1px solid #ccc;
background-color: #f9f9f9;
transition: border-color 0.3s ease;
}
#task-input:focus {
border-color: #28a745;
outline: none;
}
#priority-select {
width: 120px;
padding: 12px;
font-size: 16px;
border-radius: 6px;
border: 1px solid #ccc;
background-color: #f9f9f9;
}
#add-btn {
width: 100px;
padding: 12px 20px;
font-size: 16px;
background-color: #28a745;
color: white;
border: none;
cursor: pointer;
border-radius: 6px;
transition: background-color 0.3s ease;
}
#add-btn:hover {
background-color: #218838;
}
#clear-btn {
width: 100%;
padding: 12px;
background-color: #dc3545;
color: white;
border: none;
cursor: pointer;
border-radius: 6px;
margin-top: 20px;
font-size: 16px;
transition: background-color 0.3s ease;
}
#clear-btn:hover {
background-color: #c82333;
}
#todo-list {
margin-top: 20px;
padding-left: 0;
list-style-type: none;
}
#todo-list li {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px;
border-radius: 6px;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.05);
margin: 8px 0;
transition: background-color 0.3s ease;
}
#todo-list li.completed {
background-color: #d1e7dd;
text-decoration: line-through;
}
#todo-list li:hover {
background-color: #e9ecef;
}
#todo-list li button {
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
padding: 6px 12px;
border-radius: 6px;
transition: background-color 0.3s ease;
}
#todo-list li button:hover {
background-color: #0056b3;
}
#todo-list li button:focus {
outline: none;
}
/* Priority-based Colors */
.low {
background-color: #d4edda; /* Greenish */
}
.medium {
background-color: #ffeeba; /* Yellowish */
}
.high {
background-color: #f8d7da; /* Reddish */
}
/* Checkbox Styles */
.checkbox {
margin-right: 12px;
cursor: pointer;
}
.checkbox:checked {
background-color: #28a745;
border: 2px solid #28a745;
}
.checkbox:checked + label {
text-decoration: line-through;
}
</style>
<!-- JavaScript for To-Do List Functionality -->
<script>
// Load tasks from localStorage when the page loads
document.addEventListener("DOMContentLoaded", function() {
loadTasks();
});
document.getElementById("add-btn").addEventListener("click", function() {
var taskInput = document.getElementById("task-input");
var taskText = taskInput.value.trim();
var priority = document.getElementById("priority-select").value;
if (taskText !== "") {
// Create a new list item
var newTask = document.createElement("li");
// Create a checkbox element
var checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.classList.add("checkbox");
checkbox.addEventListener("change", function() {
toggleCompleted(newTask, checkbox);
});
// Create a label for the checkbox (task description)
var label = document.createElement("label");
label.textContent = taskText;
// Append checkbox and task text
newTask.appendChild(checkbox);
newTask.appendChild(label);
newTask.innerHTML += ` <button class="edit-btn">Edit</button><button class="delete-btn">Delete</button>`;
// Add priority class
newTask.classList.add(priority);
// Add event listeners for edit and delete buttons
newTask.querySelector(".edit-btn").addEventListener("click", function() {
editTask(newTask, taskText, priority);
});
newTask.querySelector(".delete-btn").addEventListener("click", function() {
deleteTask(newTask);
});
// Add the new task to the list
document.getElementById("todo-list").appendChild(newTask);
// Clear the input field and reset the priority dropdown
taskInput.value = "";
document.getElementById("priority-select").value = "low";
// Save tasks to localStorage
saveTasks();
}
});
// Allow pressing "Enter" to add a task
document.getElementById("task-input").addEventListener("keypress", function(event) {
if (event.key === "Enter") {
document.getElementById("add-btn").click();
}
});
// Mark a task as completed
function toggleCompleted(task, checkbox) {
if (checkbox.checked) {
task.classList.add("completed");
checkbox.style.backgroundColor = "#28a745";
} else {
task.classList.remove("completed");
checkbox.style.backgroundColor = "#fff";
}
saveTasks();
}
// Edit a task
function editTask(task, oldText, oldPriority) {
var newText = prompt("Edit Task", oldText);
if (newText && newText !== oldText) {
task.firstChild.nextSibling.textContent = newText;
saveTasks();
}
var newPriority = prompt("Edit Priority (low, medium, high)", oldPriority);
if (newPriority && newPriority !== oldPriority) {
task.classList.remove(oldPriority);
task.classList.add(newPriority);
saveTasks();
}
}
// Delete a task
function deleteTask(task) {
task.remove();
saveTasks();
}
// Save tasks to localStorage
function saveTasks() {
var tasks = [];
document.querySelectorAll("#todo-list li").forEach(function(task) {
tasks.push({
text: task.firstChild.nextSibling.textContent,
completed: task.classList.contains("completed"),
priority: task.classList.contains("low") ? "low" : (task.classList.contains("medium") ? "medium" : "high")
});
});
localStorage.setItem("tasks", JSON.stringify(tasks));
}
// Load tasks from localStorage
function loadTasks() {
var tasks = JSON.parse(localStorage.getItem("tasks")) || [];
tasks.forEach(function(taskData) {
var task = document.createElement("li");
// Create a checkbox element
var checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.classList.add("checkbox");
if (taskData.completed) {
task.classList.add("completed");
checkbox.checked = true;
checkbox.style.backgroundColor = "#28a745";
}
// Create a label for the checkbox (task description)
var label = document.createElement("label");
label.textContent = taskData.text;
// Append checkbox and task text
task.appendChild(checkbox);
task.appendChild(label);
task.innerHTML += ` <button class="edit-btn">Edit</button><button class="delete-btn">Delete</button>`;
task.classList.add(taskData.priority);
task.querySelector(".edit-btn").addEventListener("click", function() {
editTask(task, taskData.text, taskData.priority);
});
task.querySelector(".delete-btn").addEventListener("click", function() {
deleteTask(task);
});
task.querySelector(".checkbox").addEventListener("change", function() {
toggleCompleted(task, checkbox);
});
document.getElementById("todo-list").appendChild(task);
});
}
// Clear all tasks
document.getElementById("clear-btn").addEventListener("click", function() {
localStorage.removeItem("tasks");
document.getElementById("todo-list").innerHTML = "";
});
</script>
Step 4: Customize the To-Do List
Once you have added the code, update your website and test the functionality. Here’s what you can do with the online to-do list: Add new tasks with different priority levels (low, medium, high).
Edit task descriptions and adjust priorities as needed.
Mark tasks as completed to keep track of progress.
Delete tasks to remove them when no longer needed.
Step 5: Optimize the Page for SEO
To improve the visibility of your to-do list page on search engines, add relevant keywords like “free online to-do list” and “task management tool.” Include a descriptive page title and subtitles, such as:
- Best Free Online To-Do List Tool
- Enter Your Tasks Below
You can also add a short description explaining the features of your to-do list tool and how users can benefit from it.
Final Thoughts
By following these simple steps, you can create an interactive and functional to-do list inside Hostinger Website Builder. Whether you need it for personal task management or to provide a useful tool for your website visitors, this online to-do list is easy to set up and fully customizable.
If you want to learn more about Hostinger Website Builder and how to integrate custom features, check out my free course: Get My Hostinger Course for Free: https://university.bensexperience.com
Got any questions? Leave a comment below!