팁이라고 쓰고 꼼수라고 읽는...
다른 작업에 밀려서 머리 속으로 고민만 하던 것이 실제 구현을 해보니 의외로 빨리 풀렸습니다.
고민 과정에서 언제나 조언 주시고 도움 주신 전진님께 다시 한번 감사드립니다. :)
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일 때, 모바일일 때를 구분하여 내용을 전송해줄 수도 있죠.
저도 아직 초짜인 상태에서 작업하려니 힘이 드네요. ㅠㅠ
화... 화이팅 ㅠㅠ
게시글 목록
| 번호 | 제목 |
|---|---|
| 11623 |
웹서버
FTP 프로세스 죽이기
1
|
| 20284 | |
| 291 | |
| 11622 | |
| 20283 |
CSS
CSS slider 테스트1
|
| 20282 |
CSS
수평메뉴1
|
| 11620 |
node.js
Node.js 서버의 기본적인 내용 정리
1
|
| 20281 |
기타
dpi 환산표(?)
|
| 11619 | |
| 20280 | |
| 11612 |
PHP
숫자를 한글로 변환
2
|
| 11611 | |
| 11608 |
PHP
썸네일 클래스입니다
2
|
| 11605 | |
| 11602 |
MySQL
자주쓰는 MYSQL
2
|
| 11601 | |
| 11600 |
PHP
두지점의 위도,경도간 거리계산
|
| 11599 | |
| 11597 |
MySQL
무한 로딩 중인 쿼리 죽이기
1
|
| 11596 |
기타
파폭 ssh, ftp
|
| 11595 |
MySQL
mysql 기본 사용법
|
| 11594 | |
| 11593 | |
| 11592 |
jQuery
제이쿼리를 이용하여 노드 선택
|
| 11591 |
jQuery
append를 이용하여 엘리먼트 추가하기
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기