Skip to content

stronger to-do-list with more functions #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 3 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,4 @@
# To-Do-List Using JavaScript
In this tutorial, a JavaScript beginner can be able to create a beautiful and functional to do list using JavaScript.
I will talk about the logic behind every line of code, before opening my text editor and start typing the code.
it's a step by step tutorial, you won't get lost at any stage of this tutorial.
### 2019.12
Based on the preview job, I have added two functions. The first one when double click the item you can edit the content of to-do-list and the changes will auto save when the content lose the focus. The second one is that you can see the lists sorted by their completion.

to follow the tutorial step by step, when we get to the second part (when we type the code), you'll need to download the starter template from here.

The tutorial video link : https://youtu.be/b8sUhU_eq3g

When you open the folder, you'll find all the files needed to get started, the CSS code, is already typed (see style.css file), as we're not going to talk about CSS in our tutorial. we're going just to talk about HTML and JavaScript.

the to-do list we're going to create has a beautiful UI, the user can add a to-do by filling the input and hit ENTER, after that he can rather check the to-do when it's done, or remove it using the delete button.

The user's to-do list is stored in the local storage, so when he refreshes the page, he can always find the list there.

There is the possibility for the user, to clear the list, by clicking the button clear, at the top right corner of our app.

The to do list app, shows the today's date to the user, for that we're using a method called toLocaleDateString, which you can read about here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

///// Here you can find some other tutorial, that you might like to see /////

Ping Pong Game Using JavaScript
https://youtu.be/nl0KXCa5pJk

Create a Multiple Choice Quiz Using JavaScript
https://youtu.be/49pYIMygIcU

Tetris Game Using JavaScript
https://youtu.be/HEsAr2Yt2do

Snake Game Using JavaScript
https://youtu.be/9TcU2C1AACw

Flappy Bird Game Using JavaScript
https://youtu.be/L07i4g-zhDA
You can see the result in https://kkkinlibrary.github.io/To-Do-List/
1 change: 1 addition & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
theme: jekyll-theme-time-machine
217 changes: 121 additions & 96 deletions css/style.css
Original file line number Diff line number Diff line change
@@ -1,130 +1,197 @@
/* ------------ youtube.com/CodeExplained ------------ */
body{
padding: 0;
margin: 0;
background-color: rgba(0,0,0,0.1);
background-color:rgba(0,0,0, 0.1);
font-family: 'Titillium Web', sans-serif;
}

/* ------------ container ------------ */
/* -----container----- */
.container{
padding:10px;
width:380px;
margin:0 auto;
padding: 10px;
width: 380px;
margin: 0 auto;
}

/* ------------ header ------------ */
/* -----header----- */
.header{
width: 380px;
height:200px;
background-image: url('../img/bg2.jpg');
height: 200px;
background-image: url('../img/bg1.jpg');
background-size: 100% 200%;
background-repeat: no-repeat;
border-radius: 15px 15px 0 0;
position: relative;
}

.clear{
width : 30px;
width: 30px;
height: 30px;
position: absolute;
right:20px;
top: 20px;
right: 20px;
}

.clear i{
font-size: 30px;
color: #FFF;
color: #fff;
}

.clear i:hover{
cursor: pointer;
text-shadow: 1px 3px 5px #000;
transform: rotate(45deg);
}

#date{
position: absolute;
bottom: 10px;
left: 10px;
color: #FFF;
font-size: 25px;
font-family: 'Titillium Web', sans-serif;
font-family: 'Titillium Web' sans-serif;
}

.display{
position: absolute;
height: 45px;
width: 380px;
top: 160px;
}

.display i.All{
position: absolute;
right: 60px;
font-size: 25px;
color: #fff;
bottom: 13px;
}
.display i.All:hover{
cursor: pointer;
}

/* ------------ content ------------ */
.display i.fulfill{
position: absolute;
right: 35px;
font-size: 25px;
color: #fff;
bottom: 13px;
}
.display i.fulfill:hover{
cursor: pointer;
}

.display i.unfinished{
position: absolute;
right: 10px;
font-size: 25px;
color: #fff;
bottom: 13px;
}
.display i.unfinished:hover{
cursor: pointer;
}
/* -----content----- */
.content{
width:380px;
width: 380px;
height: 350px;
max-height:350px;
background-color: #FFF;
max-height: 350px;
background-color: #FFF;
border-radius: 0 0 0 0;
overflow: auto;
}
.content::-webkit-scrollbar {
display: none;
}

.content ul{
padding:0;
margin:0;
padding: 0;
margin: 0;
}

.fa-check-circle{
color: #6eb200;
}

.item{
width:380px;
font-size: 15px;
color: #000;
width: 380px;
height: 45px;
min-height: 45px;
position: relative;
border-bottom: 1px solid rgba(0,0,0,0.1);
border-bottom: 1px solid rgba(0,0,0, 0.1);
list-style: none;
position: relative;
padding: 0;
margin: 0;
}

.item i.co{
position: absolute;
font-size: 25px;
padding-left:5px;
left:15px;
top:10px;
padding-left: 5px;
left: 15px;
top: 10px;
}

.item i.co:hover{
cursor: pointer;
}
.fa-check-circle{
color:#6eb200;
}
.item p.text{

.item input.text{
position: absolute;
padding:0;
margin:0;
padding: 0;
margin: 0;
font-size: 20px;
left:50px;
top:5px;
background-color: #FFF;
max-width:285px;
left: 50px;
top: 10px;
background-color: #fff;
width: 285px;
overflow: hidden;
border: none;
}
.lineThrough{
text-decoration: line-through;
color : #ccc;

.item input:disabled{
color: #000;
font-size: 20px;
}

.item i.de{
position: absolute;
font-size: 25px;
right:15px;
top:10px;
right: 15px;
top: 10px;
}

.item i.de:hover{
color:#af0000;
color: red;
cursor: pointer;
}
/* ------------ add item ------------ */

.lineThrough{
text-decoration: line-through;
color: #ccc !important;
}

::-webkit-scrollbar{
display: none;
}

/* ------ add item ------*/
.add-to-do{
position: relative;
width: 360px;
height:40px;
background-color: #FFF;
width: auto;
height: 40px;
background-color: #fff;
padding: 10px;
border-top: 1px solid rgba(0,0,0,0.1);
border-top: 1px solid rgba(0,0,0, 0.1);
}

.add-to-do i{
position: absolute;
font-size: 40px;
color: #4162f6;
}

.add-to-do i:hover{
cursor: pointer;
text-shadow: 1px 2px 3px blue;
}

.add-to-do input{
position: absolute;
left: 50px;
Expand All @@ -133,53 +200,11 @@ body{
background-color: transparent;
border: none;
font-size: 20px;
padding-left:10px;
padding-left: 10px;
}
.add-to-do input::-webkit-input-placeholder { /* Chrome/Opera/Safari */
color: #4162f6;
font-family: 'Titillium Web', sans-serif;
font-size: 20px;
}
.add-to-do input::-moz-placeholder { /* Firefox 19+ */
color: #4162f6;
font-family: 'Titillium Web', sans-serif;
font-size: 20px;
}
.add-to-do input:-ms-input-placeholder { /* IE 10+ */
color: #4162f6;
font-family: 'Titillium Web', sans-serif;
font-size: 20px;
}
.add-to-do input:-moz-placeholder { /* Firefox 18- */

.add-to-do input::placeholder{
color: #4162f6;
font-family: 'Titillium Web', sans-serif;
font-size: 20px;
}




























45 changes: 44 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1 +1,44 @@
<!-- CODE EXPLAINED CHANNEL -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Too many lists to do</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web">
<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</script>
</head>
<body>
<div class="container">
<div class="header">
<div class="clear">
<i class="fa fa-refresh"></i>
</div>
<div class="display">
<span id="date"></span>
<i class="fa fa-pencil-square-o All"></i>
<i class="fa fa-check-square-o fulfill"></i>
<i class="fa fa-square-o unfinished"></i>
</div>
</div>

<div class="content">
<ul id="list"><!--
<li class="item">
<i class="fa fa-circle-thin co"></i>
<p class="text">Drink Coffee</p>
<i class="fa fa-trash-o de"></i>
</li> -->
</ul>
</div>
<div class="add-to-do">
<i class="fa fa-plus-circle"></i>
<input type="text" id="input" placeholder="Add a to-do">
</div>
</div>
<script src="js/app.js"></script>

</body>
</html>
Loading