6. Carousel slider ๋ง๋ค๊ธฐ
์กฐ๊ฑด
๋ฒํธ๋ฅผ ๋๋ฅด๋ฉด ํด๋น ์ด๋ฏธ์ง๋ก ์ด๋ํ ์ ์๋ค.
$('.slide-1').on('click', function(){
$('.slide-container').css('transform', 'translateX(0)');
})
$('.slide-2').on('click', function(){
$('.slide-container').css('transform', 'translateX(-100vw)');
})
$('.slide-3').on('click', function(){
$('.slide-container').css('transform', 'translateX(-200vw)');
})
7. Carousel slider ๋ง๋ค๊ธฐ 2
์กฐ๊ฑด
์ด์ /๋ค์๋ฒํผ ๋ง๋ค๊ธฐ. ์ฒซ๋ฒ์งธ ์ด๋ฏธ์ง์์ ์ด์ ๋๋ฅด๊ฑฐ๋ ๋ง์ง๋ง ์ด๋ฏธ์ง์์ ๋ค์ ๋๋ฌ๋ ์ค๋ฅ ์์ด ์๋ํ๊ธฐ
let nowPic = 1;
$('.slide-container').css('width', `${$('.slide-box').length}00vw`);
$('.prev').on('click', function(){
if (nowPic == 1) {
$('.slide-container').css('transform', `translateX(-${$('.slide-box').length - 1}00vw)`);
nowPic = $('.slide-box').length;
} else {
$('.slide-container').css('transform', `translateX(-${nowPic - 2}00vw)`);
nowPic--;
}
})
$('.next').on('click', function(){
if (nowPic == $('.slide-box').length) {
$('.slide-container').css('transform', `translateX(0)`);
nowPic = 1;
} else {
$('.slide-container').css('transform', `translateX(-${nowPic}00vw)`);
nowPic++;
}
})
๊นจ๋ฌ์ ์ : ๋ฌธ์์ด ์์ ๋ณ์๋ฅผ ๋ฃ์ ์ ์์๋ค! ES6์์ ์ถ๊ฐ๋ Template literals๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์ ๋ฐฑํฑ๊ธฐํธ ``๋ก ํํํ๋ฉด ์์ ${} ํํ๋ก ๋ณ์๋ฅผ ๋ฃ์ ์ ์๋ค. ''๋ก ๋ ๋ฌธ์์ด์๋ ์ธ ์ ์์๋ค.
8. ์์๋ฃ ๊ณ์ฐํ๊ธฐ
์กฐ๊ฑด
์์์ ์ค์ฐจ ๊ฐ์ ํ๊ณ , ๋ฌธ์์ด๋ก ๋ฐํ๋ ๊ฐ ์ซ์๋ก ๋ณํํ์ฌ return์ผ๋ก ๋ฐํํ๊ธฐ
console.log(vat(55555));
function vat(a) {
let num = (a * 1.1).toFixed(1);
return parseFloat(num);
}
๊นจ๋ฌ์ ์ : ์ ๋ง ๊ฐ๋จํ๊ธด ํ๋ฐ ์ฌํ๊น์ง๋ return์ ๋นผ๋ ์ฝ์์ ๊ฐ์ด ์ ์์ ์ผ๋ก ๋ฐ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค. ๊ฐ์ a * 0.1์ ๋ด๊ณ ์๋๋ผ๋ ๋ฆฌํด์ด ์๋ ํจ์๋ ๊ฐ์ ํค ๋ฑ์ด์ ๋ฐํํ๊ณ , ๋ฆฌํด์ด ์๋ ํจ์๋ ํธ์ถ๋๋ฉด ์คํ๋ง ํ๋ ๊ฒ์ด๋ค. (๊ทธ๋์ undefined๊ฐ ๋จ๋๋ผ)
9. ๋ถ, ์ด๋ฅผ ๋ฃ์ผ๋ฉด ms๋ก ๊ตฌํ๊ธฐ
console.log(timeChanger(1,30));
function timeChanger (min, s){
let minChange = min * 60;
let result = minChange + s;
return result * 1000;
}
10. ํ ์ธ์ ์ต์ด๊ตฌ๋งคํ ์ธ ๋จน์ฌ์ ์ต์ข ๊ตฌ๋งค๊ฐ ๊ตฌํ๊ธฐ
์กฐ๊ฑด
1. ์์์ ์ค์ฐจ ๊ฐ์ ํ๊ณ , ๋ฌธ์์ด๋ก ๋ฐํ๋ ๊ฐ ์ซ์๋ก ๋ณํํ์ฌ return์ผ๋ก ๋ฐํํ๊ธฐ
2. 10ํผ์ผํธ ํ ์ธ๊ฐ ๋จน์ด๊ณ , ์ฒซ๊ตฌ๋งค์ผ ์ 1.5๋ฌ๋ฌ ์ถ๊ฐ ํ ์ธํด์ ์ต์ข
๊ตฌ๋งค๊ฐ ๋ฐํํ๊ธฐ
console.log(disCounter(10,true));
function disCounter (price, firsttime){
let finalPrice = (price * 0.9).toFixed(1);
if (firsttime == true) {
return parseFloat(finalPrice) - 1.5;
} else {
return parseFloat(finalPrice);
}
}
11. ๋ค๋น๋ฐ ํ ์คํธ ์คํฌ๋กค ๋ด๋ฆฌ๋ฉด ํฐํธ์ฌ์ด์ฆ ์ค์ด๊ธฐ
์กฐ๊ฑด
์คํฌ๋กค ๋ค์ ์ฌ๋ฆฌ๋ฉด ํฐํธ์ฌ์ด์ฆ ๋ค์ ํค์ฐ๊ธฐ
window.addEventListener('scroll', function(){
if (window.scrollY > 100) {
document.querySelector('.navbar-brand').style.fontSize = '16px';
} else {
document.querySelector('.navbar-brand').style.fontSize = '30px';
}
})
12. ์ฝ๊ด๋ฐ์ค ์คํฌ๋กค ๋๊น์ง ๋ด๋ฆฌ๋ฉด ์ผ๋ฟ๋์ฐ๊ธฐ
์กฐ๊ฑด
์์ ํ ๋๊น์ง ๋ด๋ฆฌ์ง ์์๋ ์ ๋นํ ๋ค ์ฝ์ผ๋ฉด ์ผ๋ฟ๋์ฐ๊ธฐ
let lorem = document.querySelector('.lorem');
lorem.addEventListener('scroll', function(){
if ((lorem.scrollTop + lorem.getBoundingClientRect().height) > (lorem.scrollHeight - 10)) {
alert('๋๊น์ง ์ฝ์์.');
}
})
๊นจ๋ฌ์ ์
scrollHeight/clientHeight/offsetHeight/getBoundingClientRect()์ ๋ํด์ ์์นํ๋ฉฐ ์๊ฒ ๋ ๊ฑด ๋ฐ๋ก ๊ธ๋ก ์์ฑํ๋ค.
addEventListener('scroll') ์์ window.๋ก ๋ถ์๋๋ ์๋ ์ํ๋ค. (์ฝ๊ด์ ์คํฌ๋กคํ๋๊ฒ์ด๋ ๋น์ฐํจ) ์ฃผ์ํ์.
๊ฐ์ ํ ์
์์์ ํ๋ฉด์ ๋ณด์ด๋ ๋์ด๊ฐ์ element.getBoundingClientRect().height๋ก ํ๊ฒน๊ฒ ๊ตฌํ๋๋ฐ, element.clientHeight๋ก๋ ๋์ผํ ๊ฐ์ด ๋ฐํ๋๋ค๊ณ ํ๋ค?
์ด์ ๊ดํด ์ด ๊ธ : [์ฝ๋ฉ์ ํ] ์์์ ๋์ด์ ์์น๊ฐ ๊ตฌํ๊ธฐ (clientHeight, offsetHeight, scrollHeight, getBoundingClientRect()) — PERFECTLY YELLOW (tistory.com)
13. ํ๋ฉด์ ๋ด๋ฆฌ๋ฉด ์งํ๋๊ฐ ํ์๋๋ ๋ฐ ๋ง๋ค๊ธฐ
const progress = document.querySelector('.progress');
const progressBar = document.querySelector('.progress .bar');
window.addEventListener('scroll', function(){
let nowProgress = Math.max(window.scrollY / (document.body.scrollHeight - window.innerHeight)).toFixed(2) * 100;
progressBar.style.width = nowProgress + `%`;
})
๊นจ๋ฌ์ ์
window.scrollY(ํ์ฌ์คํฌ๋กค์์น) document.body.scrollHeight(๋ฌธ์ ์ ์ฒด์ ๋์ด) window.innerHeight(๋ชจ๋ํฐ์ ๋ธ๋ผ์ฐ์ ์์ฒด์ ๋์ด)๋ก ๊ตฌํ๋ค.
๋ฌธ์ ์ ์ฒด์ ๋์ด๋ ์ ํํ๋ ์ด๋ ๊ฒ ๊ตฌํ๋ค๊ณ ํ๋ค.
let scrollHeight = Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
์ฐธ๊ณ ์ฌ์ดํธ : https://ko.javascript.info/size-and-scroll-window
์ถ์ฒ : ์ฝ๋ฉ์ ํ https://codingapple.com/
'๐จ JavaScript > ๋ฌธ์ ํ๊ธฐ (ํ๋ก๊ทธ๋๋จธ์ค, ์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Level 3 : 1~3 (array, object) (0) | 2023.01.31 |
---|---|
[์ค์] Level 2 : 14,15(์์ ๋ฐ ๊นจ๋ฌ์ ์ )_for, ๋ฒ๋ธ๋งํ์ฉ์ถ์ฝ๋ฒ์ (0) | 2023.01.13 |
Level 2 : 1~5 (์์ ๋ฐ ๊นจ๋ฌ์ ์ )_if๋ฌธ (0) | 2023.01.09 |
Level 1 : 6~12 (์์ ๋ฐ ๊นจ๋ฌ์ ์ ) (0) | 2023.01.08 |
Level 1 : 1~5 (์์ ๋ฐ ๊นจ๋ฌ์ ์ ) (0) | 2023.01.02 |