[자바스크립트] 스와이프 방향 알아내기

[자바스크립트] 스와이프 방향 알아내기

제 블로그에서 드로워를 열거나, 홈 화면 슬라이더를 넘길 때 사용 중인 스와이프 감지 스크립트입니다. 굉장히 단순한 구조지만, 간단한 사용엔 크게 무리가 없습니다. let initialX = null,   initialY = null; function initTouch(e) {   initialX = `${e.touches ? e.touches[0].clientX : e.clientX}`;   initialY = `${e.touches ? e.touches[0].clientY : e.clientY}`; }; function swipeDirection(e) {   if (initialX !== null && initialY !== null) {     const currentX = `${e.touches ? e.touches[0].clientX : e.clientX}`,       currentY = `${e.touches ? e.touches[0].clientY : e.clientY}`;     let diffX = initialX - currentX,       diffY = initialY - currentY;     Math.abs(diffX) > Math.abs(diffY)     ? (       0 < diffX       ? console.log("to left")       : console.log("to right")     )     : (       0 < diffY       ? console.log("to top")       : console.log("to bottom")     )     initialX = null;     initialY = null;   } } window.addEventListener("touchstart", initTouch); window.addEventListener("touchmove", swipeDirection); window.addEventListener("mousedown", (e) => {   initTouch(e),   window.addEventListener("mousemove", swipeDirection) });...
191024 블로그 제작일지

191024 블로그 제작일지

사파리 업데이트 테스트용 아이폰이 생겨서 사파리 업데이트를 열심히 하는 중입니다.솔직히 브라우저가 너무 구려서 내다 버리고 싶은 마음은 굴뚝 같은데, IE보단 나으니 일단 참고 업데이트하는 중입니다. 근데 진짜 제대로 작동 안 하는 기능이 너무 많습니다…transform도 이상하게 작동하는 게 꽤 보이고, scroll-behavior는 작동을 하지도 않고, 그래디언트도 제대로 못 그리고…이게 브라우접니까 캐시 헤더 추가 귀찮아서 미루던 작업을 이제야...
사파리 그래디언트 오류 수정하기

사파리 그래디언트 오류 수정하기

애플의 사파리(Safari) 브라우저에서 그래디언트를 넣을 때, 다른 색은 괜찮지만, 투명(transparent)색을 그래디언트에 추가하면 그래디언트가 망가지는 오류가 있습니다. 사파리를 제외한 브라우저 대부분에선 위아래 전부 아래와 같은 색의 그래디언트가 들어가는데, 사파리는 transparent를 넣으면 검은색을 잔뜩 끼얹어버립니다. #first {     background: linear-gradient(transparent, red) } #second {     background: linear-gradient(rgba(255, 255, 255, 0), red) } 위 #second에 적용한 예시처럼 transparent 대신 색의 alpha 값을 0으로 설정한 후 그래디언트를 넣으시면 해결됩니다. #first {...
Lazy Load 업데이트

Lazy Load 업데이트

(스크롤바에 집중해서 보시면 확인이 더 쉽습니다.) 개인적으로 마음에 들진 않는 기능이라 업데이트를 꺼리고 있었는데, 주변에 lazy load가 뭔지 설명하고 어떠냐 물어보니 전부 호평이더라고요.사실 서버 부하도 줄일 수 있고 로딩 속도의 향상도 가능해서 나름 괜찮은 스크립트인 건 맞으니, 한 번 시험 삼아 업데이트해봤습니다. 이미지 로딩을 시작하는 타이밍을 조금 앞당기니 그리 거슬리는 수준은 아니네요. 스크롤바나 스크롤 인디케이터가...
새로운 로고 제작

새로운 로고 제작

예전에 사용하던 로고는 티스토리에 있을 때 티스토리 로고 따라서 대충 만든 거라, 바꾸고 싶은 욕구가 계속 생기더라고요. 동생이 그림 잘 그려서 동생한테 부탁도 해보고, 이것저것 혼자서 그려도 보다가 오늘 하나 건졌네요. 제 그림 동생이 보고 적당히 작업해준 거 제가 포토샵으로 다시 다듬어서 완성했습니다.쌩 아마추어 둘이서 만든 거라 확대해보면 표면이 좀 우둘투둘하기도 하고 여러모로 투박하지만, 꽤...
191016 블로그 제작일지

191016 블로그 제작일지

모바일 전용 업데이트 스와이프 기능을 업데이트했습니다. 아무래도 모바일에선 버튼 터치보단 스와이프가 훨씬 직관적인 것 같더라고요.저도 본능적으로 슬라이더를 넘기거나 드로워를 열려고 스와이프를 하기도 하고요. 홈 화면에 있는 슬라이더를 스와이프 하면 이전, 다음 슬라이더로 넘어가고, 화면 왼쪽 끝에서 오른쪽, 오른쪽 끝에서 왼쪽으로 스와이프 하면 양측 드로워 - 삼선 메뉴나 프로필 사진 누르면 열리는 것 - 가 열립니다....
티스토리에서 Lazy Load 사용하기

티스토리에서 Lazy Load 사용하기

Lazy Load(레이지 로드)란? 오프스크린 이미지(사용자가 보고 있는 화면에 보이지 않는 이미지)를 로딩하지 않고 있다가, 사용자가 스크롤을 움직여서 해당 이미지가 보여야 할 시점에 이미지를 로딩하는 기술입니다. 투명 이미지 업로드 이미지에 오류가 발생하면 티스토리에서 위 이미지를 집어넣습니다.굳이 로딩하지 않아도 될 이미지를 로딩할 필요가 없으니, 이미지의 src에 1px * 1px짜리 이미지를 하나 넣어줘서 이미지에 아무런 오류가 발생하지 않도록...
[wip] 티스토리 스킨 #12 배포 버전

[wip] 티스토리 스킨 #12 배포 버전

Summer Nights ver.2에서 큰 틀만 가져오고 싹 갈아엎어서 만들었던 12번째 스킨입니다.해당 스킨의 레이아웃을 거의 그대로 빌려와 다듬은 게 지금 제가 사용 중인 워드프레스 테마고요. 반 년이 넘게 머리를 굴려도 이 틀에서 벗어나지 않는 걸 보면, 아마 제 취향들이 점철된 테마가 이게 아닐까 싶어 혼자 사용 중이던 티스토리 스킨도 배포용 버전을 준비하는 중입니다. 일단 지금은 스크립트를...
191006 TWICE New Tab 제작 일지

191006 TWICE New Tab 제작 일지

크롬 익스텐션을 웹 앱으로 옮기는 과정도 포함되어 있습니다. 자료 구조 일단 제일 먼저, 크롬에서 제공해주는 동기화 저장소 (chrome.storage.sync)를 이용할 수 없으니, 로컬 저장소에 모든 자료를 저장하도록 해야 합니다. 기존에 사용하던 방식입니다. 크롬 저장소에서 데이터를 받는 게 생각보다 느려서, 레이아웃을 그릴 때 필요한 옵션들은 전부 로컬 저장소에 저장해두고, 이름, 할 일 목록, D-day등의 정보는 크롬 저장소에...