팁이라고 쓰고 꼼수라고 읽는...
다른 작업에 밀려서 머리 속으로 고민만 하던 것이 실제 구현을 해보니 의외로 빨리 풀렸습니다.
고민 과정에서 언제나 조언 주시고 도움 주신 전진님께 다시 한번 감사드립니다. :)
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일 때, 모바일일 때를 구분하여 내용을 전송해줄 수도 있죠.
저도 아직 초짜인 상태에서 작업하려니 힘이 드네요. ㅠㅠ
화... 화이팅 ㅠㅠ
게시글 목록
| 번호 | 제목 |
|---|---|
| 32341 | |
| 32339 | |
| 32326 | |
| 32325 | |
| 32322 | |
| 32319 | |
| 32318 | |
| 32316 | |
| 32315 | |
| 32313 | |
| 32312 | |
| 32311 | |
| 32310 | |
| 32304 | |
| 32303 | |
| 32300 | |
| 32293 | |
| 32292 | |
| 32291 | |
| 32285 | |
| 32284 | |
| 32275 | |
| 32271 | |
| 32268 | |
| 32265 | |
| 32261 | |
| 32258 | |
| 32257 | |
| 32255 | |
| 32254 | |
| 32253 | |
| 32251 | |
| 32250 | |
| 32249 | |
| 32247 | |
| 32246 | |
| 32245 | |
| 32244 | |
| 32243 | |
| 32242 | |
| 32241 | |
| 32240 | |
| 32239 | |
| 32238 | |
| 32237 | |
| 32236 | |
| 32232 | |
| 32229 | |
| 32228 | |
| 32227 | |
| 32217 | |
| 32215 | |
| 32214 | |
| 32213 | |
| 32211 | |
| 32207 | |
| 32196 | |
| 32193 | |
| 32192 | |
| 32190 | |
| 32188 | |
| 32186 | |
| 32184 | |
| 32173 | |
| 32172 | |
| 32171 | |
| 32167 | |
| 32165 | |
| 32163 | |
| 32162 | |
| 32158 | |
| 32157 | |
| 32155 | |
| 32151 | |
| 32149 | |
| 32135 | |
| 32132 | |
| 32127 | |
| 32125 | |
| 32122 | |
| 32120 | |
| 32119 | |
| 32117 | |
| 32116 | |
| 32115 | |
| 32114 | |
| 32112 | |
| 32111 | |
| 32109 | |
| 32107 | |
| 32104 | |
| 32103 | |
| 32102 | |
| 32101 | |
| 32094 | |
| 32089 | |
| 20404 | |
| 31036 | |
| 8279 | |
| 8268 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기