video.mov
๐ LINK : DayMaker
$ git clone https://github.com/seunghyun0522/DayMaker.git
โโโ ๐css
โ โโโ ๐reset.css
โ โโโ ๐style.css
โโโ ๐imgs
โ โโโ background
โ โโโ icon
โโโ ๐index.html
โโโ ๐script
โโโ ๐background.js
โโโ ๐calender.js
โโโ ๐clock.js
โโโ ๐quotes.js
โโโ ๐todoList.js
โโโ ๐user.js
โโโ ๐weather.js
- html tag๋ฅผ form์ผ๋ก ์ค์ ํ๊ณ input์ ํตํด ์ ๋ ฅํ๊ณ ๋ก๊ทธ์ธ ๋ฒํผ์ ๋๋ ์ ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฐ๋ก ์ถ๋ ฅ์ด ๋์ง ์๋ ํ์์ ๋ณผ ์ ์๋ค. ์๋์ ๊ฐ์ ์ํฉ์ ์คํ์ด ๋์ง ์๋๋ค.
const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
function onLoginSubmit() {
const username = loginInput.value;
console.log(username);
}
loginForm.addEventListener("submit", onLoginSubmit);
form ํ๊ทธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก submit๋ฅผ ํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋๋ก ๋์ด์๋ค. โ ์ด๊ฒ์ ๋ง๋ ๊ฒ์ด preventDefault()
์ด๋ค.
์คํ์ด ๋๊ธฐ ์ํด์๋ preventDefault()
๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. โ ์ฆ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ธฐ๋ณธ ๋์์ ์คํํ์ง ๋ชปํ๊ฒ ๋ง์์ฃผ๋ ๊ฒ ๋ฟ์ด๋ค.
preventDefault()
๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ function๋ด argument๋ฅผ ์ผ๋จ ์ฑ์์ผ ํ๋ค.
function onLoginSubmit(event) {
event.preventDefault();
console.log(loginInput.value);
}
- ํ์ฌ DB๋ฅผ ๋ฐ๋ก ์ฌ์ฉํ์ง ์๊ณ ์๊ธฐ ๋๋ฌธ์ local ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํ๋ค.
- ๊ทธ๋ฌ๊ธฐ ์ํด์๋
local Storage
๋ผ๋ ์์ DB์ ์ ์ฅํด์ผ ํ๋ค. (์๋ก๊ณ ์นจ ํ์๋ ์ด์ ์๊ฒ!)localstorage.setItem(key,value)
: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
localstorage.getItem(key,value)
: ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
localstorage.removeItem(key,value)
: ๋ฐ์ดํฐ ์ง์ฐ๊ธฐ
-
js ๋ด์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ด ์์ง๋ง ๊ฐ๋จํ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
-
new Date()
๋ฅผ ์ฌ์ฉํด ์ค์๊ฐ ์๊ฐ์ ๊ฐ์ ธ์จ๋ค. -
์๊ฐ์ 1์ด์ฉ ํ๋ฅด๊ธฐ๋๋ฌธ์
setInterval(function(),1000)
๋ฅผ ์ถ๊ฐํด์ค๋ค.const clock = document.querySelector("h2#clock"); function getClock() { const date = new Date(); clock.innerText = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`; } getClock(); setInterval(getClock, 1000);
-
์ฌ์ฉ์์ ํ์ฌ ์์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ์จ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์น ํ์ด์ง์ ํ์ํ๋ ์ฝ๋๋ฅผ ์๋ดํ๋ค.
-
OpenWeatherMap API
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ์์น์ ๋ ์จ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.const API_KEY = API_KEY ๋ฃ๊ธฐ // ์์น ์ ๋ณด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ฐ์ ธ์จ ๊ฒฝ์ฐ ์คํ๋๋ ์ฝ๋ฐฑ ํจ์ function onGeoOk(position) { const lat = position.coords.latitude; const lon = position.coords.longitude; const url = `https://api.openweathermap.org/data/2.5/weatherlat=${lat}&lon=${lon}&appid=${API_KEY}&units=metric` ; // OpenWeatherMap API๋ก ๋ ์จ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค. fetch(url) .then((response) => response.json()) .then((data) => { // HTML์์ ๋ ์จ ์ ๋ณด๋ฅผ ํ์ํ ์์๋ฅผ ์ ํํฉ๋๋ค. // ๋ ์จ ์ ๋ณด๋ฅผ ํ๋ฉด์ ์ ๋ฐ์ดํธํฉ๋๋ค. }); } // ์์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค์ง ๋ชปํ ๊ฒฝ์ฐ ์คํ๋๋ ์ฝ๋ฐฑ ํจ์ function onGeoError() { alert("Can't find you, No weather for you."); } // ์ฌ์ฉ์์ ํ์ฌ ์์น ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค. navigator.geolocation.getCurrentPosition(onGeoOk, onGeoError);