팁이라고 쓰고 꼼수라고 읽는...
다른 작업에 밀려서 머리 속으로 고민만 하던 것이 실제 구현을 해보니 의외로 빨리 풀렸습니다.
고민 과정에서 언제나 조언 주시고 도움 주신 전진님께 다시 한번 감사드립니다. :)
jquery 는 g4s 에서 사용 중인 1.8.3 버전을 기준으로 작업했습니다.
하이브리드 개발자님과 의논해보니, 이벤트핸들러 말고 클래스 바꿔치기도 되겠습니다.
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>테스트</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=0,maximum-scale=10,user-scalable=yes">
<meta name="HandheldFriendly" content="true">
<meta name="format-detection" content="telephone=no">
<script src="js/jquery-1.8.3.min.js"></script>
<style>
ul {margin:0;padding:0;list-style:none}
ul ul {display:none}
button {cursor:pointer}
</style>
</head>
<body>
<p></p>
<ul>
<li>
<button type="button">테스트</button>
<ul>
<li>
<a href="">테스트 서브</a>
</li>
</ul>
</li>
</ul>
<script>
// 무엇을 구현할 것인가?
// gnb
// 구조는 어떤가?
// ul > li > button
// ul > li > a
// 어떻게 동작하는가?
// min-width 970px 에서 button 클릭 시 페이지 이동 (script 이용하여 event 추가)
// 오버/포커스 시 서브메뉴 출력
// max-width 969px 에서 button 클릭 시 서브메뉴 출력
// PC 모바일을 검사하여 PC 면 + 포커스 오버 시 서브메뉴 출력 및 클릭해도 페이지 이동은 하지 않음 (예정)
$(function() {
$(window).load(function(){
var doc_width = document.width; // 문서 로드될 때 문서 넓이 감지
hdlr_switch(doc_width);
});
$(window).resize(function(){
var doc_width = document.width; // 리사이즈 될 때 문서 넓이 감지
hdlr_switch(doc_width);
});
function hdlr_switch(val) {
var hdlr = "";
if (val >= "970") {
hdlr = "mouseover focus";
} else {
hdlr = "click";
}
$("button").unbind();
$("button").bind(""+hdlr+"", function(){
$("ul ul").css("display", "block");
});
/* 970px 이상일 때만
$("button").click(function(){
$(location).attr('href','http://www.sir.co.kr');
});
*/
}
});
</script>
</body>
</html>
댓글 20개
enquire.js 를 사용하시는 방법도 있고, 위 탑스쿨님이 말씀하신 방법이나 저의 방법보다 더 많은 callback 기능을 포함했으면서도 놀랍게도 가볍습니다.
http://sir.co.kr/bbs/board.php?bo_table=pb_tip&wr_id=2578
modernizr 로 touch 기기인지 아닌지를 판별한 후 선택적으로 이벤트를 지정하는 방법도 있습니다.
http://modernizr.com/
여기에 RESS 까지 더하면 PC일 때, 모바일일 때를 구분하여 내용을 전송해줄 수도 있죠.
저도 아직 초짜인 상태에서 작업하려니 힘이 드네요. ㅠㅠ
화... 화이팅 ㅠㅠ
http://sir.co.kr/bbs/board.php?bo_table=pb_tip&wr_id=2578
modernizr 로 touch 기기인지 아닌지를 판별한 후 선택적으로 이벤트를 지정하는 방법도 있습니다.
http://modernizr.com/
여기에 RESS 까지 더하면 PC일 때, 모바일일 때를 구분하여 내용을 전송해줄 수도 있죠.
저도 아직 초짜인 상태에서 작업하려니 힘이 드네요. ㅠㅠ
화... 화이팅 ㅠㅠ
게시글 목록
| 번호 | 제목 |
|---|---|
| 12438 |
JavaScript
배경음악 랜덤 재생 하기 입니다.
|
| 12437 |
JavaScript
css 지원 여부 확인해서 다른 페이지로 이동하기 입니다.
|
| 12436 |
JavaScript
하부메뉴가 보였다가 숨겨졌다 하는 토글버튼 입니다.
|
| 12435 |
JavaScript
개별 페이지에 인덱스로 거쳐 들어오게 하기 입니다.
|
| 12434 |
JavaScript
랜덤으로 이미지 출력 되기 입니다.
|
| 12433 |
JavaScript
사용자 해상도 알아내기 입니다.
|
| 12432 |
JavaScript
붙여넣기 금지하기 입니다.
|
| 12431 |
MySQL
대소문자 데이터 조회하기
|
| 12430 |
JavaScript
퇴장시 팝업창 한번한 띄우기 입니다.
|
| 12429 | |
| 12428 |
PHP
신문 기사를 긁어오기 입니다.
|
| 12427 |
JavaScript
시도, 구군, 동 주소 select
|
| 12426 |
MySQL
커리로 DB 테이블 명세서 출력하기
|
| 12425 |
JavaScript
브라우저 해상도 구분없는 절대 x,y 좌표 값 구하기 입니다
|
| 12424 |
PHP
rss 읽어오기 입니다.
|
| 12423 |
JavaScript
자바스크립트로 Ajax 효과내기 입니다.
|
| 12422 | |
| 12421 |
JavaScript
키보드,마우스 등 불펌방지 입니다.
|
| 12420 |
JavaScript
해상도에 따라 서로 다른 페이지로 접속 하기 입니다.
|
| 12419 |
JavaScript
특정페이지에서 자동으로 새로고침 하기 입니다.
|
| 12418 |
JavaScript
마우스 오버시 이미지 안쪽에 테두리주기
|
| 12417 |
node.js
git 사용메뉴얼 보면 깝깝 하네요
|
| 12416 | |
| 12415 | |
| 12414 |
JavaScript
간결한 레이어 메뉴 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기