关于如何构建笔记应用程序的教程(包含 HTML、CSS 和 JavaScript 代码)。
记笔记是记录信息的做法。 记笔记的一些好处是: 记笔记可以作为学习辅助工具,记笔记可以提高注意力和对细节的关注,促进主动学习,并提高记忆力。 记笔记并不一定是写在纸上或书本上,记笔记,可以在我们的手机上通过打字来完成。 本文将提供有关如何使用 HTML5、CSS3 和 JavaScript 构建笔记应用程序的信息。 本文适用于熟悉 HTML5、CSS3 和 JavaScript 基础知识的人。 本文不包括对 HTML5、CSS3 和 JavaScript 的详细阐述,但将提供源代码。
让我们开始吧
首先,我们需要使用 Html5 和 Css3 创建 UI。
从iconscout 获取所有图标。
HTML 的示例代码
Note Taking
Add a new note
CSS 的示例代码
:root{
--primaryColor:#0e153a;
--secondarycolor: #e2f3f5;
--primaryText: #3d5af1;
}
*{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
}
body{
background: var(--primaryColor);
}
.wrapper{
margin: 50px;
display: grid;
gap: 15px;
grid-template-columns: repeat(auto-fill, 265px);
}
.wrapper li{
height: 250px;
list-style: none;
background: var(--secondarycolor);
border-radius: 5px;
padding: 15px 20px 20px;
}
.add-box, .icon, .bottom-content, .popup, header{
display: flex;
align-items: center;
justify-content: space-between;
}
.add-box{
flex-direction: column;
justify-content: center;
cursor: pointer;
}
.add-box .icon{
height: 88px;
width: 88px;
font-size: 60px;
justify-content: center;
color: var(--primaryColor);
}
.add-box p{
color: var(--primaryText);
font-weight: 500;
margin-top: 20px;
}
.wrapper .note{
display: flex;
flex-direction: column;
justify-content: space-between;
}
.note p{
font-size: 22px;
font-weight: 500;
color: var(--primaryColor);
}
.note span{
display: block;
margin-top: 5px;
color: var(--primaryText);
font-size: 16px;
}
.bottom-content span{
color: var(--primaryText);
font-size: 14px;
}
.bottom-content .settings i{
color: var(--primaryText);
font-size: 15px;
cursor: pointer !important;
padding: 0 10px;
}
.popup-box{
position: fixed;
top: 0;
left: 0;
height: 100%;
z-index: 2;
width: 100%;
background: rgba(0, 0, 0, 0.4);
}
.popup-box .popup{
position: absolute;
top: 50%;
left: 50%;
z-index: 3;
max-width: 400px;
width: 100%;
justify-content: center;
transform: translate(-50%, -50%);
}
.popup-box, .popup-box .popup{
opacity: 0;
pointer-events: none;
transition: all 0.25s ease;
z-index: -1;
}
.popup-box.show, .popup-box .popup{
opacity: 1;
pointer-events: auto;
z-index: 3;
}
.popup .content{
width: calc(100% - 15px);
border-radius: 5px;
background: #fff;
}
.popup .content header{
padding: 15px 25px;
border-bottom: 1px solid #ccc;
}
.content header p{
font-size: 20px;
font-weight: 500;
}
.content header i{
color: #575757;
cursor: pointer;
font-size: 20px;
}
.content form{
margin: 15px 25px 35px;
}
.content form .row{
margin-bottom: 20px;
}
form .row label{
display: block;
font-size: 18px;
margin-bottom: 6px;
}
.content form :where(input, textarea) {
width: 100%;
height: 50px;
outline: none;
font-size: 17px;
padding: 0 15px;
border-radius: 4px;
border: 1px solid #999;
}
.content form textarea{
height: 150px;
padding: 8px 15px;
resize: none;
}
.content form button{
width: 100%;
height: 50px;
border: none;
outline: none;
border-radius: 5px;
color: #fff;
font-size: 17px;
background: var(--primaryColor);
}
这是实现 Html 和 CSS 后的样子
现在是 JavaScript 的示例代码
const addBox = document.querySelector('.add-box'),
popupBox = document.querySelector('.popup-box'),
popupTitle = popupBox.querySelector('header p'),
closeIcon = document.querySelector('header i'),
titleEl = document.querySelector('input'),
descEl = document.querySelector('textarea'),
addBtn = document.querySelector('button ');
const months= ['January', 'Febuary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
const notes = JSON.parse(localStorage.getItem('notes') || '[]');
let isUpdate = false, updateId;
function showNotes() {
document.querySelectorAll('.note').forEach(note => note.remove());
notes.forEach((note, index)=>{
let liEl=`
${note.title}
${note.description}
${note.date}
`;
addBox.insertAdjacentHTML('afterend', liEl);
});
}
showNotes();
function deleteNote(noteId) {
let confirmDelete= confirm("Are you sure you want to delete this note?");
if(!confirmDelete) return;
notes.splice(noteId, 1);
localStorage.setItem('notes', JSON.stringify(notes));
showNotes();
}
function updateNote(noteId, title, desc) {
isUpdate = true;
updateId = noteId;
addBox.click();
titleEl.value = title;
descEl.value = desc;
addBtn.innerText = 'Edit Note';
popupTitle.innerText = 'Editing a Note';
}
addBox.addEventListener('click', ()=>{
titleEl.focus();
popupBox.classList.add('show')
});
closeIcon.addEventListener('click', ()=>{
isUpdate = false;
titleEl.value = '';
descEl.value = '';
addBtn.innerText = 'Add Note';
popupTitle.innerText = 'Add a new Note';
popupBox.classList.remove('show');
});
addBtn.addEventListener('click', (e)=>{
e.preventDefault();
let noteTitle = titleEl.value,
noteDesc = descEl.value;
if (noteTitle || noteDesc) {
let dateEl= new Date(),
month = months[dateEl.getMonth()],
day = dateEl.getDate(),
year = dateEl.getFullYear();
let noteInfo = {
title: noteTitle,
description: noteDesc,
date: `${month} ${day} ${year}`
}
if (!isUpdate) {
notes.push(noteInfo);
}else{
isUpdate = false;
notes[updateId] = noteInfo;
}
localStorage.setItem('notes', JSON.stringify(notes));
closeIcon.click();
showNotes();
}
});
最后,这是添加 JavaScript 后的样子
注意:您可以通过单击添加注释图标添加新注释,通过单击编辑图标编辑注释并通过单击垃圾桶图标删除注释。
所有笔记都将存储在 Web 浏览器的本地存储中,因此刷新页面后仍会显示笔记。
恭喜,你做到了。 您构建了一个笔记应用程序。
关注七爪网,获取更多APP/小程序/网站源码资源!
留言与评论(共有 0 条评论) “” |