Notice
Recent Posts
Recent Comments
Link
투케이2K
74. (javascript/자바스크립트) 클릭 (click), 롱 클릭 (long click) 이벤트 등록 실시 - mousedown , touchstart , Date now 본문
JavaScript
74. (javascript/자바스크립트) 클릭 (click), 롱 클릭 (long click) 이벤트 등록 실시 - mousedown , touchstart , Date now
투케이2K 2021. 6. 23. 09:27/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Edit++
개발 언어 : javascript
/* =========================== */
/* =========================== */
[소스 코드]
<script>
/*
[JS 요약 설명]
1. window.onload : 웹 브라우저 로딩 완료 상태를 확인합니다
2. document.getElementById : 특정 id 값을 가진 객체를 지정합니다
3. addEventListener : 특정 객체에 이벤트를 등록합니다
4. mousedown : 마우스 클릭 시작 이벤트입니다
5. mouseup : 마우스 클릭 종료 이벤트입니다
6. touchstart : 터치 시작 이벤트입니다
7. touchend : 터치 종료 이벤트입니다
8. Date.now() : UTC 기준으로 1970년 1월 1일 0시 0분 0초부터 현재까지 경과된 밀리 초를 반환합니다
9. 참고 : 모바일에서는 마우스 이벤트가 동작하지 않으므로 터치 이벤트를 사용해 추가 구현해야합니다
*/
/* [html 최초 로드 및 이벤트 상시 대기 실시] */
window.onload = function() {
console.log("");
console.log("[window onload] : [start]");
console.log("");
// 객체 매핑 실시
var one_container = document.getElementById("one_container");
var two_container = document.getElementById("two_container");
two_container.addEventListener("mousedown", mouseStart); //pc
two_container.addEventListener("mouseup", mouseEnd); //pc
two_container.addEventListener("touchstart", touchStart, false); //mobile
two_container.addEventListener("touchend", touchEnd, false); //mobile
// 일반 클릭 이벤트 등록 실시
one_container.onclick = function() {
console.log("");
console.log("[one_container] : [onclick]");
console.log("[click] : " + Date.now());
console.log("");
alert("Click");
};
// [pc] 롱 클릭 이벤트 등록 실시
var pcLong = 0;
function mouseStart() {
pcLong = Date.now(); //클릭한 시간 얻어옵니다
};
function mouseEnd() {
var result = Date.now() - pcLong;
if(Number(result) > 800){ //롱 클릭 발생
console.log("");
console.log("[two_container] : [mouseup] : [LongClick]");
console.log("[start] : " + pcLong);
console.log("[end] : " + Date.now());
console.log("[data] : " + Number(result));
console.log("");
alert("LongClick");
}
else {
console.log("");
console.log("[two_container] : [mouseup] : [result]");
console.log("[data] : " + Number(result));
console.log("");
}
};
// [mobile] 롱 클릭 이벤트 등록 실시
var mobileLong = 0;
function touchStart(evt) {
mobileLong = Date.now(); //터치한 시간 얻어옵니다
};
function touchEnd(evt) {
var result = Date.now() - mobileLong;
if(Number(result) > 800){ //롱 터치 발생
console.log("");
console.log("[two_container] : [touchend] : [LongTouch]");
console.log("[start] : " + mobileLong);
console.log("[end] : " + Date.now());
console.log("[data] : " + Number(result));
console.log("");
alert("LongTouch");
}
else {
console.log("");
console.log("[two_container] : [touchend] : [result]");
console.log("[data] : " + Number(result));
console.log("");
}
};
};
</script>
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
/*
[JS 요약 설명]
1. window.onload : 웹 브라우저 로딩 완료 상태를 확인합니다
2. document.getElementById : 특정 id 값을 가진 객체를 지정합니다
3. addEventListener : 특정 객체에 이벤트를 등록합니다
4. mousedown : 마우스 클릭 시작 이벤트입니다
5. mouseup : 마우스 클릭 종료 이벤트입니다
6. touchstart : 터치 시작 이벤트입니다
7. touchend : 터치 종료 이벤트입니다
8. Date.now() : UTC 기준으로 1970년 1월 1일 0시 0분 0초부터 현재까지 경과된 밀리 초를 반환합니다
9. 참고 : 모바일에서는 마우스 이벤트가 동작하지 않으므로 터치 이벤트를 사용해 추가 구현해야합니다
*/
/* =========================== */
반응형
'JavaScript' 카테고리의 다른 글
Comments