Creating a simple To Do App in HTML CSS And JavaScript

 



<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width,initial-scale=1.0">

<title>TO Do App</title>

<style type="text/css">

*{   margin: 0;

padding: 0;

box-sizing: border-box;

}

ul li{  cursor: pointer;

position: relative;

padding: 12px 8px 12px 40px;

background: #eee;

font-size: 18px;

transition: 0.2s;

user-select: none;

}

ul li:nth-child(odd){

background: #f9f9f9;

}

ul li:hover{

background: #ddd;

}

ul li.checked{

background: #888;

color: #fff;

text-decoration: line-through;

}

ul li.checked::before{

content: '';

position: absolute;

border-color: #fff;

border-style: solid;

border-width: 0 2px 2px 0;

top: 10px;

left: 16px;

transform: rotate(45deg);

height: 15px ;

width: 7px;

}

.close{

position: absolute;

right: 0;

top: 0;

padding: 12px 16px 12px 16px;

}

.close:hover{

      background: #00b867;

      color: white;

      text-align: center;

}

.header{

background: #00b867;

padding: 30px 40px;

color: white;

text-align: center;

}

.header:after{

content: "";

display: table;

clear: both;

}

input{

border: none;

width: 75%;

padding: 10px;

float: left;

font-size: 16px;

box-sizing: border-box;

}

.addBtn{

padding: 10px;

box-sizing: border-box;

width: 25%;

background: #d9d9d9;

color: #555;

float: left;

text-align: center;

font-size: 16px;

cursor: pointer;

transition: 0.3s;

}

.addBtn:hover{

background: #bbb;

}

</style>

</head>

<body>

<div id="myDIV" class="header">

<h2 > To Do list Example</h2>

<input type="text" id="myInput" placeholder="Title......">

<span onclick="newElement()" class="addBtn">Add</span>

</div>

<ul id="myUL">

<li>Hit the gym</li>

<li class="checked">Pay bills</li>

<li>Clean the car</li>

<li>Buy Groceries</li>

<li>Read a book</li>

<li>Organize Home</li>

</ul>

<script type="text/javascript">

// Create a close button and append to each list item

var myNodelist=document.getElementsByTagName('LI');

var i;

for(i=0; i<myNodelist.length; i++){

var span=document.createElement('SPAN');

var txt=document.createTextNode("\u00D7");

span.className="close";

      span.appendChild(txt);

    myNodelist[i].appendChild(span);

        }

           //  Click on a close button to hidde the current list item

           var close=document.getElementsByClassName('close');

           var i;

           for(i=0; i<close.length; i++){

            close[i].onclick= function(){

            var div = this.parentElement;

            div.style.display="none";

            }

           }

           // Add a checked symbol when clicking on a list item

           var list=document.querySelector('ul');

           list.addEventListener('click', function(ev){

            if (ev.target.tagName==='LI') {

            ev.target.classList.toggle('checked');

            }

           },false);

            // Create  a new list item when clicking on the "add" button

           function newElement(){

            var li=document.createElement('li');


            var inputValue=document.getElementById('myInput').value;


            var t=document.createTextNode(inputValue);


            li.appendChild(t);

            if (inputValue==='') {

            alert('You must write something');

            }else{

            document.getElementById('myUL').appendChild(li);

            }

            document.getElementById('myInput').value="";


            var span=document.createElement('SPAN');


            var txt=document.createTextNode('\u00D7');


            span.className='close';

            span.appendChild(txt);

            li.appendChild(span);

            for(i=0; i<close.length; i++){

            close[i].onclick=function(){

            var div =this.parentElement;

            div.style.display="none";

            }

            }

           }

</script>

</body>

</html>

Comments

Blogs