-
[개발일지] JavaScript & JQuery 기초 수업 Level 3-2Study/Development 2022. 8. 15. 20:26
<코딩애플 온라인강의 수강일지>
Level 3-2 JavaScript: local storage, 스와이프, switch, 드래그&드롭
1. local storage 사용법
- 개발자도구 > application
localStorage.setItem('이름', 'kim') //자료저장하는법 localStorage.getItem('이름') //자료꺼내는법 localStorage.removeItem('이름') //자료삭제하는법
// array 변환하여 저장하기 var arr = [1,2,3]; var newArr = JSON.stringify(arr); localStorage.setItem('num', newArr); // array 꺼내서 다시 변환하기 var 꺼낸거 = localStorage.getItem('num'); 꺼낸거 = JSON.parse(꺼낸거); console.log(꺼낸거);
2. 스와이프 기능 만들기
var xStart = 0 var xNow = 0 let imgNowX = 0 var clicked = false for (let i = 0; i < $('.slide-box').length; i++) { $('.slide-box').eq(i).on('mousedown', function (e) { xStart = e.clientX clicked = true }) $('.slide-box').eq(i).on('mousemove', function (e) { xNow = e.clientX imgNowX = i * document.body.clientWidth * -1 console.log(imgNowX) if (clicked == true) { $('.slide-container').css('transform', `translateX(${xNow - xStart + imgNowX}px)`) } }) $('.slide-box').eq(i).on('mouseup', function (e) { xNow = e.clientX clicked = false if (xNow - xStart < -100 && i != 2) { $('.slide-container').css('transition', 'all 0.5s').css('transform', `translateX(${(i + 1) * -100}vw`) imgNow = i + 1 } else if (xNow - xStart > 100 && i != 0) { $('.slide-container').css('transition', 'all 0.5s').css('transform', `translateX(${(i - 1) * -100}vw`) imgNow = i - 1 } else { $('.slide-container').css('transition', 'all 0.5s').css('transform', `translateX(${(i) * -100}vw`) } setTimeout(function () { $('.slide-container').css('transition', 'all 0s') }, 500) }) }
3. switch 문법
<div id="quiz"> <h4>물에 빠지면 누구먼저 구할 것임?</h4> <button>와이프</button> <button>부모님</button> <button>키우던 개</button> </div> <script> document.querySelector('#quiz').addEventListener('click', function(e){ switch (e.target.innerHTML){ case '와이프': alert('와이프를 좋아하시네요'); break case '부모님': alert('효자네요'); break case '키우던 개': alert('역시 사람보단 동물이 더 낫죠'); break } }); </script>
4. 드래그 & 드롭 기능개발
// json 불러오기 let products = [] let cart = [] $.get('store.json').then((data) => { products = data.products for (let i = 0; i < products.length; i++) { let pTitle = products[i].title let pBrand = products[i].brand let pPrice = products[i].price let pPhoto = products[i].photo let pId = products[i].id let temp_html = ` <div class="col"> <div class="card" data-id="${pId}" draggable="true"> <img src="/img/${pPhoto}" class="card-img-top"> <div class="card-body"> <h5 class="card-title">${pTitle}</h5> <h6 class="card-brand">${pBrand}</h6> <p class="card-text">가격: ${pPrice}</p> <button class="add btn btn-dark" data-id="${pId}">담기</button> </div> </div> </div> ` $('#list').append(temp_html) } //담기버튼 $('.add').click(function (e) { //지금 누른 상품번호 let productId = e.target.dataset.id; let num = cart.findIndex((a) => { return a.id == productId }) if (num == -1) { let itemNow = products.find((a) => { return a.id == productId }) itemNow.count = 1 cart.push(itemNow) } else { cart[num].count++ } console.log(cart) $('.cart').html('') for (let i = 0; i < cart.length; i++) { let cTitle = cart[i].title let cBrand = cart[i].brand let cPrice = cart[i].price let cPhoto = cart[i].photo let cCount = cart[i].count let temp_html = ` <div class="col"> <div class="item card"> <img src="/img/${cPhoto}" class="card-img-top"> <div class="card-body"> <h5 class="card-title">${cTitle}</h5> <h6 class="card-brand">${cBrand}</h6> <p class="card-text">가격: ${cPrice}</p> <input type="number" value="${cCount}" class="item-count w-100"> </div> </div> </div> ` $('.cart').append(temp_html) } //가격계산 calPrice() }) //담기버튼 끝 // 장바구니 $('.card').on('dragstart', function (e) { e.originalEvent.dataTransfer.setData('id', e.target.dataset.id) }) $('.cart').on('dragover', function (e) { e.preventDefault() }) $('.cart').on('drop', function (e) { let productId = e.originalEvent.dataTransfer.getData('id') console.log(productId) $('.add').eq(productId).click() }) }) //$.get().then() 끝
반응형'Study > Development' 카테고리의 다른 글
[개발일지] Dart 입문 2: Object Oriented Programming (0) 2022.08.18 [개발일지] Dart 입문 1: 언어 기본 (0) 2022.08.17 [개발일지] JavaScript & JQuery 기초 수업 Level 3-1 (0) 2022.08.09 [개발일지] JavaScript & JQuery 기초 수업 Level 2-2 (0) 2022.08.08 [개발일지] JavaScript & JQuery 기초 수업 Level 2-1 (0) 2022.08.02