To-Do-List 1.29
by velo_ninja
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Divs</title>
<style> </style>
<script>
//--------------
let counterRows = 0;
let counterNote = 0;
//--------------
function generateRows(data) {
const body = document.body;
for (const [key, value] of Object.entries(data)) {
const row = createRow(value);
body.appendChild(row);
}
}
//---------------------------------------------
function createRow(data, parentElement) {
const row = document.createElement('div');
row.classList.add('row');
row.style.display = 'flex';
for (let i = 0; i < data.ids.length; i++) {
const div = createDiv(data.ids[i], data.titles[i], data.colors[i]);
//-------GENERAL-STYLE------------
div.style.padding = '10px';
div.style.display = 'flex';
div.style.alignItems = 'center';
div.style.justifyContent = 'flex-start';
div.style.flexBasis = `${data.percentages[i]}%`;
//-------[ COUNTER ]------------
if(div.id==='divCounter') {
div.id = div.id+counterRows;
div.textContent = counterRows;
div.style.color = 'white';
}
//-------[ TITLE ]------------
else if(div.id==='divTitle') {div.id = div.id+counterRows;}
//-------[ BUTTONS ]------------
else if(div.id==='divButtons') {div.id = div.id+counterRows;
let btn_EditTask = createButton('btnEditTask', 'Edit-Task', xxx, divTask.id);
let btn_DeleteTask = createButton('btnDeleteTask', 'Delete-Task', xxx, divTask.id);
//--------------------------[BTN-ID]-[BTN-LABEL]-[BTN-FUNCTION]-[TARGET-DIV]---------------------
...
CSS
.row {border-bottom: 3px solid black !important;}
#divTask {
width: 100%;
height: 10px; /* Adjust the thickness of the underline */
background: linear-gradient(to right, rgba(0, 100, 255, 0.5), rgba(100, 250, 55, 0.4)); /* Gradient color */
border-radius: 5px; /* Rounded corners */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.8); /* Shadow effect */
display: flex;
align-items: center; /* Corrected typo: align-items */
justify-content: center;
}
#divNote {
width: 100%;
background: linear-gradient(to right, rgba(0, 100, 255, 0.5), rgba(100, 250, 55, 0.8)); /* Gradient color */
border-radius: 5px; /* Rounded corners */
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.8); /* Shadow effect */
}
JavaScript
/*
function generate_Checkbox(counter) {
let checkBoxId = 'chb' + document.querySelectorAll('#divF input[type="checkbox"]').length; // Generate unique ID
let checkBox = document.createElement('input');
checkBox.type = 'checkbox';
checkBox.id = 'checkBox'+counter;
checkBox.addEventListener('click', function() { console.log(checkboxId); console.log(divFId);
// Add your custom click handling logic here
});
return checkBox;
}
*/