기본 콘텐츠로 건너뛰기

html click 이벤트가 모바일에선 300ms가 느리다!!?

안녕하세요 광흠입니다.


이번 포스팅은 "html 클릭 이벤트가 모바일에선 왜 느릴까?" 주제로 하겠습니다




일단 동영상을 한번 시청해보시면 차이를 아실거라 생각이 듭니다
(youtube에서 찾은 비교 영상입니다.)

왼쪽은 일반 click이벤트이고 우측이 touch 영상입니다.

육안으로도 확연히 차이가 심합니다.

자료를 찾아보니 모바일에서는 더블탭이 될지도 모르기 때문에 300ms를 대기 시간으로 둔다더군요 그래서 모바일에선 touch 이벤트가 존재합니다

종류는 아래 보시면 되겠습니다


  1. touchstart (스크린에 손가락이 닿았을때 발생한다)
  2. touchmove (스크린에 손가락이 닿아있고 움직일때 발생한다)
  3. touchend (스크린에서 손가락이 떨어졌을 경우 발생한다)
  4. touchcancel (시스템에서 이벤트를 취소시킬 때 발생하지만 브라우저마다 다르다)


이렇게 이벤트를 사용하여 반응형 웹 또는 모바일 웹을 제작할때 touch이벤트를 잘 사용하도록 하자.

여기서 주의할 점은 touch이벤트를 사용할때 컴퓨터의 웹에선 동작하지 않습니다.

그래서 click이벤트와 같이 사용을 해주셔야하는데요


1
2
3
4
5
6
7
8
9
10
11
12
13
//모바일에서 touch이벤트와 click이벤트가 같이 발생할때 click을 취소하는 펑션입니다.
function eventHandler(event, selector) {//
    event.stopPropagation();
    event.preventDefault();
    if (event.type === 'touchend'){
        selector.off('click');
    }
}
//위의 평션은 이렇게 이벤트와 element를 넘겨주시면 되겠습니다.
$(selector).on('touchend click'function(event) {
    eventHandler(event, $(this));
    nextMenu();
});


이상으로 포스팅을 마치겠습니다 ^^

감사합니다.

댓글

이 블로그의 인기 게시물

Intellij에서 Eclipse 프로젝트 import시 설정해줘야 할 것들

요즘 여유가 좀 생겨서 지금까지 Eclipse만 쓰다가 사람들이 하도 Intellij가 좋다하길래 얼마나 좋길래 하고 써보려고 하다가 프로젝트를 import 시키던중 좀 적어두면 좋을거같아서 적어보려고한다 !! 다음에 잊지 않기 위해... 1. Settings > Build, Execution, Deployment > Compiler > Java Compiler 버전 맞추기 2. 상단에 설정 추가 하는부분을 눌러 톰켓을 생성해준다. 꼭 넣어줘야할 부분은 VM options에  -Dfile.encoding=utf-8  한글 깨짐 방지다. (그리고 intellij 설치 된 곳에 bin폴더 안에 vmoptions 확장자를 갖은 녀석의 맨 마지막 줄에도 넣어준다!) 3. project structure > Project Settings > Project 그리고 java버전에 맞춰서 project language level도 맞춰줘야합니다! 4. project structure > Project Settings > Modules - Sources 여기도 project language level도 맞춰줘야합니다! 5. project structure > Project Settings > Modules - Dependencies 들어가서 + 단추를 누르고 Library..를 누르고 Tomcat 추가! 이러면 이클립스에서 갖고온 프로젝트가 잘 동작합니다!! 아 그리고 .settings, .classpath, .project 는 필요 없어지므로 삭제해도 무방합니다 ps. 사실... 이클립스 쓰면서 불편한건 하나도 없었어요... 그리고 아직은 단축키라던지 익숙하지 않아서 이클립스가 더 편하네요... 사실 이클립스 단축키를 인텔리제이와 동일하게 할 수 있지만.... 인텔리제이의 기본 설정만 써...

카카오톡 API 로그인 하기

안녕하세요 광흠입니다. 오늘 소개할 내용은 우리나라 대표 메신저 카카오톡 API를 사용한 로그인하는 방법을 소개 드릴까 합니다. https://developers.kakao.com  해당 링크가 카카오톡 API 를 참고할 수 있는 곳입니다. 1 . 사이트를 접속하시면 빨간 테두리에 노란색 화살표를 누르시면 초록색 테두리 ( 내 어플리케이션 ) 을 선택하실 수 있습니다. 선택해서 일단 들어가봅시다. 2 . ( 내 어플리케이션 )을 선택하고 들어오시면 해당 페이지가 뜨는데 빨간색 테두리 ( 앱 만들기 )를 클릭하고 새로운 카카오 키를 받아봅시다! 3 . ( 앱 만들기 )는 간단하게 이름만 작성해서 일단 만드시면 됩니다. 4 . ( Create )버튼을 클릭하시면 이렇게 각각 쓰이는곳 마다 키를 발급하는데요 저는 웹에서 사용하기 때문에 javascript 키를 사용합니다. (실제로 발급하시면 저기 빨간 테두리 공간에 키가 존재합니다) 키를 복사하시고 밑에 html에 "발급받은 키" 공간에 넣어주시면되요 5 . 여기서 플랫폼 추가를 누르셔서 어디서 사용할지를 작성을 해야해요 어디서 사용할지를 작성 하지 않으면 위에 했던 것들이 모두 헛것 이 됩니다...;( 6 .위에서 언급했듯이 저는 웹 에서 쓰기때문에 사이트 도메인 을 작성하였구요 7 .로그인 버튼을 누르시면 팝업창으로 카카오톡 로그인창이 뜹니다. 8 .카카오톡 로그인을 하시면 아래와 같이 여러 정보가 날라오는데  일단 전 이름과 프로필사진(사실상 이 두개면 되지 않을까요..) 만 보이게 해놓았습니다^^

구글 로그인 연동

구글 로그인 연동이 2019년에 새롭게 재작성되었습니다  [최신 글 보기] 안녕하세요 광흠입니다. 이번에 포스팅 할 내용은 제목보시면 아시겠지만 google oauth2를 이용한 로그인 연동을 해볼텐데요. 우선 준비하실 부분이 몇가지 있습니다. 화면 보시고 따라오시면 금방 하실 수 있을겁니다 ^^ 1. 구글 콘솔에서 프로젝트 생성  https://console.developers.google.com 처음 시작하시는 분들은 저처럼 아무것도 존재하지 않을거에요 그럼 프로젝트 만들기 버튼을 클릭해서 새로운 프로젝트를 생성해봅시다. 이번에 로그인 테스트이니 이름을 google-login-test로 해보겠습니다. 주의하셔야 할 점은 ' 프로젝트 이름 '과 ' 프로젝트 ID '는 동일하면 생성이 되질 않습니다. 생성을 하시면 이 화면으로 오게 됩니다. 여기서 메뉴쪽 보시면  API 및 인증 하위 메뉴에 사용자 인증 정보 메뉴를 클릭 해줍니다. 이 화면으로 오시면 새 클라이언트 ID 만들기 버튼을 클릭해주시면 생성해주시면 이렇게 ' 웹 애플리케이션용 클라이언트 ID' 라는 테이블이 하나 생성이 되는데요. 여기서 생성된 ' 클라이언트 ID ' 를 잘 메모장에 적어둡시다. 여기까지하면 google api를 사용할 수 있게 준비가 되어있는데요. 그 후  https://developers.google.com/+/web/signin/  여기 google 쪽 읽어보시고 거기에있는 예제 코드로 바로 사용하셔도 무방할 정도로 잘 정리되어있습니다. 여기서 주의할 점은 예제코드에 clientid 그대로 사용하시면 401 에러 나면서 로그인 못하실 꺼에요 꼭 위에 생성한 ' 클라이언트 ID '를 사용하시면 되겠습니다 이상 구글 로그인 연동 포시팅을 마치도록 하겠습니다 ^^ ...