web standard/script2022. 8. 25. 09:39

잡설 : 한동안 실무를 놨더니 기본개념부터 가물가물하다. 나 스스로를 위해 기초부터 다시 되짚어보고자 한다..

 

var는 es6 이전 변수를 정의할때 사용하는 구문

자비로운 javascript 덕분에 var는 오류가 날것 같은 상황에서도 에러를 내뱉지 않음

 

예를 들어.. 첫번째 케이스를 보자.

console.log(a);
var a = 0;
console.log(a);

// 결과
undefined
0

해당 코드는 일반인이 봤을땐 코드 순서대로 실행할것 같다고 판단하겠지?? java나 C++에서도 그렇게 판단할것 같다.

근데 javascript는 최초 브라우져 엔진이 코드에 접근했을때 변수나 함수 선언된 놈들을 끄집어내 메모리에 저장한다.

최상단 전역으로 올리는 행위 즉 호이스팅 한다고 표현한다.

 

그렇다보니 console을 실행하기 전에 변수 a를 선언한걸 먼저 호이스팅 하기 때문에 undefined가 출력된다.

이루 a를 0으로 할당하고 두번째 console을 실행할때 0의 값이 출력되는것

 

또는 이런 경우도 있다... 두번째 케이스.

for (var i=0; i < 5; i++) {
    console.log(i)
}
console.log(i)

// 결과
0
1
2
3
4
5

저기서 변수 i는 지역변수다. 전역에서 접근되면 안되는..

근데 보는바와 같이 접근이 가능해서 5가 출력된다.

var로 선언된 지역변수는 function에서만 보장된다는 블라블라....

 

이걸 보완하고자 나온게 let

 

첫번째 케이스를 let으로 바꿔보자

console.log(a);
let a = 0;
console.log(a);

// 결과
Uncaught ReferenceError: a is not defined at <anonymous>

에러가 난다. a는 아직 정의되지 않았다고..

var와 마찬가지로로 호이스팅은 한다. 대신 접근할 수 없는 TDZ라는 곳에 임시저장된 뒤 선언할때 접근 가능한 저장소로 옮겨진다고 한다.

 

for (let j=0; j < 5; j++) {
    console.log(j)
}
console.log(j)

// 결과
0
1
2
3
4
Uncaught ReferenceError: j is not defined at <anonymous>

위와 마찬가지 에러가 난다.

 

이걸 통해 var와 let의 차이.. 그리고 호이스팅이 뭔지 개념에 대해 이해해보자.

Posted by 수라
web standard/css2016. 10. 6. 17:45

[출처]http://naiyumie.inour.net/archives/2471


Internet Explorer -인터넷 익스플로러

Selector Hacks

/* IE 6 and below */
* html .selector  {}
.suckyie6.selector {} /* .suckyie6 can be any unused class */


/* IE 7 and below */
.selector, {}


/* IE 7 */
*:first-child+html .selector {}
.selector, x:-IE7 {}
*+html .selector {}


/* Everything but IE 6 */
html > body .selector {}


/* Everything but IE 6/7 */
html > /**/ body .selector {}
head ~ /* */ body .selector {}


/* Everything but IE 6/7/8 */
:root *> .selector {}
body:last-child .selector {}
body:nth-of-type(1) .selector {}
body:first-of-type .selector {}
Property ⁄ Value Hacks


/* IE 6 */
.selector { _color: blue; }
.selector { -color: blue; }


/* IE 6/7 – any combination of these characters:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > | */
.selector { !color: blue; }
.selector { $color: blue; }
.selector { &color: blue; }
.selector { *color: blue; }
/* … */


/* IE 6/7 – acts as an !important */
.selector { color: blue !ie; }
/* string after ! can be anything */


/* IE 8/9 */
.selector { color: blue\0/; }
/* must go at the END of all rules */


/* IE 9/10 */
.selector:nth-of-type(1n) { color: blue\9; }


/* IE 6/7/8/9/10 */
.selector { color: blue\9; }
.selector { color/*\**/: blue\9; }


/* Everything but IE 6 */
.selector { color/**/: blue; }


 Media Query Hacks


/* IE 6/7 */
@media screen\9 {}


/* IE 6/7/8 */
@media \0screen\,screen\9 {}


/* IE 8 */
@media \0screen {}


/* IE 8/9/10 & Opera */
@media screen\0 {}


/* IE 9/10, Firefox 3.5+, Opera */
@media screen and (min-resolution: +72dpi) {}


/* IE 9/10 */
@media screen and (min-width:0\0) {}


/* IE 10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {}


/* Everything but IE 6/7/8 */
@media screen and (min-width: 400px) {}

  

 

 JavaScript Hacks


/* IE <= 8 */
var isIE = ‘\v’==’v’;


/* IE 6 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 6]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 7 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 7]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;
navigator.appVersion.indexOf(“MSIE 7.”)!=-1


/* IE 8 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 8]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 9 */
(checkIE = document.createElement(“b”)).innerHTML = “<!–[if IE 9]> var isIE = checkIE.getElementsByTagName(“i”).length == 1;


/* IE 10 */
var isIE = eval(“/*@cc_on!@*/false”) && document.documentMode === 10;


/* IE 10 */
var isIE = document.body.style.msTouchAction != undefined;

 


  

Firefox -파이어폭스

Selector Hacks


/* Firefox 1.5 */
body:empty .selector {}


/* Firefox 2+ */
.selector, x:-moz-any-link {}


/* Firefox 3+ */
.selector, x:-moz-any-link; x:default {}


/* Firefox 3.5+ */
body:not(:-moz-handler-blocked) .selector {}


Media Query Hacks


/* Firefox 3.5+, IE 9/10, Opera */
@media screen and (min-resolution: +72dpi) {}


/* Firefox 3.6+ */
@media screen and (-moz-images-in-menus:0) {}


/* Firefox 4+ */
@media screen and (min–moz-device-pixel-ratio:0) {}


 JavaScript Hacks


/* Firefox */
var isFF = !!navigator.userAgent.match(/firefox/i);


/* Firefox 2 – 13 */
var isFF = !!window.globalStorage;


/* Firefox 2/3 */
var isFF = /a/[-1]==’a’;


/* Firefox 3 */
var isFF = (function x(){})[-5]==’x’;
Miscellaneous


/* Firefox 3+ */
@-moz-document url-prefix() {}

 



 

Chrome -크롬

 Selector Hacks
/* Chrome 24- and Safari 5- */
::made-up-pseudo-element, .selector {}


 Media Query Hacks
/* Chrome, Safari 3+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {}


 JavaScript Hacks
/* Chrome */
var isChrome = !!window.chrome;

 

 


 

Safari -사파리

Selector Hacks


/* Safari 2/3 */
html[xmlns*=””] body:last-child .selector {}
html[xmlns*=””]:root .selector  {}


/* Safari 2/3.1, Opera 9.25 */
*|html[xmlns*=””] .selector {}


/* Safari 5- and Chrome 24- */
::made-up-pseudo-element, .selector {}


 Media Query Hacks
/* Safari 3+, Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0) {}


 JavaScript Hacks
/* Safari */
var isSafari = /a/.__proto__==’//’;



Opera -오페라

 Selector Hacks


/* Opera 9.25, Safari 2/3.1 */
*|html[xmlns*=””] .selector {}


/* Opera 9.27 and below, Safari 2 */
html:first-child .selector {}


/* Opera 9.5+ */
noindex:-o-prefocus, .selector {}

 Media Query Hacks

/* Opera 7 */
@media all and (min-width: 0px){}

/* Opera 12- */
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0) {}


/* Opera, Firefox 3.5+, IE 9/10 */
@media screen and (min-resolution: +72dpi) {}


/* Opera, IE 8/9/10 */
@media screen {}


 JavaScript Hacks
/* Opera 9.64- */
var isOpera = /^function \(/.test([].sort);


/* Opera 12- */
var isOpera = !!window.opera;

'web standard > css' 카테고리의 다른 글

줄바꿈 완련 style  (0) 2012.08.23
파폭용핵  (0) 2010.11.17
CSS 이야기: overflow 속성의 float 해제 효과  (0) 2010.03.05
css 핵  (0) 2008.07.29
css제대로 사용하기  (0) 2008.07.29
Posted by 수라
web standard/jquery2016. 10. 5. 10:31

출처: http://recoveryman.tistory.com/120




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style></style>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script>
        $(function(){
            $("html, body").on('mousewheel DOMMouseScroll'function(e) {
                var E = e.originalEvent;
                delta = 0;
                console.log(E);
                if (E.detail) {
                    delta = E.detail * -40;
                    $('body').text(delta);
                }else{
                    delta = E.wheelDelta;
                    $('body').text(delta);
                };
            });
        });
   </script>
</head>
<body>
    
</body>
</html>
 
cs


'web standard > jquery' 카테고리의 다른 글

이벤트 설정 시에 jQuery의 .on()을 사용하자.  (0) 2014.10.13
[jquery] ajax 방법  (0) 2014.04.11
jQuery Slider plugin  (0) 2014.01.09
width가 100%인 이미지에 맵 걸기  (0) 2013.04.22
좌우(상하) 슬라이드  (0) 2012.02.29
Posted by 수라
web standard/script2015. 4. 24. 15:34

/* OS & 버젼 체크 */

function getOSVer() {
    var mobileOS;    // will either be iOS, Android or unknown
    var mobileOSver; // this is a string, use Number(mobileOSver) to convert
    var uaindex;
    // determine OS
    if ( agentString.match(/iPad/i) || agentString.match(/iPhone/i) ) {
        mobileOS = 'iOS';
        uaindex  = agentString.indexOf( 'OS ' );
    } else if ( agentString.match(/Android/i) ) {
        mobileOS = 'Android';
        uaindex  = agentString.indexOf( 'Android ' );
    } else {
        mobileOS = 'unknown';
    }
    // determine version
    if ( mobileOS === 'iOS'  &&  uaindex > -1 ) {
        mobileOSver = agentString.substr( uaindex + 3, 1 ).replace( '_', '.' );
    } else if ( mobileOS === 'Android'  &&  uaindex > -1 ) {
        mobileOSver = agentString.substr( uaindex + 8, 1 );
    } else {
        mobileOSver = 'unknown';
    }
    if (mobileOS === 'iOS') {
        $("body").addClass(mobileOS+mobileOSver);
    } else if (mobileOS === 'Android') {
        $("body").addClass(mobileOS+mobileOSver);
    }
}

Posted by 수라
life/game2015. 4. 16. 17:06























'life > game' 카테고리의 다른 글

[펌]coc 라벌미공략  (0) 2015.03.17
Rift 소울설명  (0) 2011.05.19
디아2 할일  (2) 2010.05.26
디아2 큐브조합공식  (0) 2010.05.26
Diablo2 쓸만한 룬워드아이템  (0) 2010.05.25
Posted by 수라
카테고리 없음2015. 4. 2. 15:21

디바이스별 웹뷰 해상도 case별로 체크한 수치.

*표는 세로모드의 width


* 340
* 360
* 375
* 384
* 400

414
* 424
* 480

533
* 540

568

569
* 600

604

640

667
* 640
* 720

736
* 768
* 800

854

950

960
* 966

1024
* 1200

1280

1440
* 1600

1920

2560


Posted by 수라
life/game2015. 3. 17. 12:57

원글 : http://cafe.naver.com/koreabros/6396

카페 메니저 한스 입니다. 


저는 4200 트로피 대역에서 현재 유지중에 있습니다.  월드 166등 찍고는 유지만 하고 있습니다. 
(사실 4200부터는 서치 시간과의 싸움입니다. 연말에는 일이 좀 많아서 유지만 하는 중입니다.)

벌룬 28 + 미니언 50 + 캐슬 벌룬 7 조합으로 200연승을 하다가 ... 라바가 나왔습니다. 

라바 나오고, 바로 전장으로 뛰어 나갔다 한판 지고는 몇달째 연승입니다.  (졸다가 한번 진적이 있긴 하군요.)

라바는 현재까지 가장 마음에 드는 케릭입니다. 맵만 잘보고 들어가면 .. 대부분 승리를 가져다 줍니다. 

사실 벌룬의 경우도 맵을 보는게 핵심이고, 골램의 경우도 맵을 보는 것이 핵심입니다. 

골램맵 보는 방법은 벌룬 맵보는 방법보다 조금 어렵습니다. 


일단 맵을 보고 30초 안에 ... 라바2 + 벌룬24 + 미니언 30 의 조합의 맵 서치의 기본은

1. 위저드 타워 4개의 위치 + 인페 멀티의 위치를 가장 먼저 봅니다. 
(일단 벌룬의 1렬 드랍을 기본으로 합니다. )

그리고 들어갈 방향을 정하는데, 일단 맵의 절반까지 진입을 했을때, 위저드 타워 + 인페멀티가 제일 적게 노출되는 곳으로 
드랍위치를 정합니다. 




전체 맵의 드랍위치가 정해지면 (빨간색 화살표)

빨간색 선의 위치까지 절반까지 풍선이 진입할때까지 ... 인페 멀티 2개와 위저드 타워4개가 제일 적게 노출되는 자리로
드랍하는 것이 제일 좋습니다. 

이렇게 일자로 풍선이 진입하면서 절반을 부셔주면, 기본 50%의 건물이 부셔지면서 원스타를 할 수 있습니다. 

그리고 화살표 자리에 영웅을 떨구워 주면, 벽을 부시고 돌진하여, 타운홀을 부셔 주는 겁니다. 

와, 이렇게 이론 상으로는 아주 쉽죠??


2. 자, 일단 인페멀티랑, 위저드 타워가 적게 노출되는 자리로 드랍하는게 유리하다를 배우셨죠?

그 다음에는 ... 라바의 드랍입니다. 

라바를 제일 먼저 드랍하는 것과 나중에 드랍하는 방법이 있는데, 전반적으로 처음에 라바드랍하는 것이 좋습니다. 
세부 변형은 본인이 하시겠지만, 기본은 그렇습니다. 

그러면 라바는 무엇을 보고 드랍하느냐?


라바는 에어디펜을 보고 달려가는 것 아시지요?
라바는 드랍 자리에서 가장 가까운 에어디펜으로 공격을 가게 됩니다.  그러면 어떻게 떨구냐?

위저드 타워의 시선을 잡아주면 (위저드 타워가 라바를 공격하도록) 끝입니다. 
그 이후에 터져서, 터진 빨간 미니언 조각들이 인페 멀티의 공격을 잡아주면 제일 좋습니다. 

벌룬이 얼마만큼, 위저드 타워에 노출이 되지 않느냐가 승리의 키포인트 입니다. 

에어 디펜과 위저드 타워의 거리가 위저드 타워의 사정거리 안에 들어와 있어야 합니다.





방어승으로는 유명한? 본드걸님의 진영이네요. 좋은맵입니다. 방어에는 확실히 장점이 있으신 분 같습니다. 

맵을 절반을 자르면 .. 제일 적게 인페, 위타에 노출되는 건 7시 방향입니다. 그런데 이리로 1렬 드랍하면, 가운데 몽창 몰리겠군요. 벌룬으로 들어가는 것이였으면, 최대한 넓게 7시를 뿌리는게 답입니다만 라바면 좀 다릅니다. 

이맵의 경우 4시로 일렬 드랍하면, 초기에 라바가 안쪽 위타를 잡아주고, 바깥쪽 위타는 벌룬 3마리 정도만 몰리게 드랍을 해야 합니다. 

벌룬이 6시 - 4시에 1렬 드랍하고, 3시쪽으로 3개 정도 드랍하면 절반 정리 됩니다. 





제일 많은 대칭 조합. 이럴 경우 인페 2개에 걸리지 않게, 5시 11시 드랍중 선택하시면 됩니다.

캐슬이 타운 뒷쪽이 있는 것이 유리하므로, 11시 드랍하시면 됩니다. 






ㅅ 자 드랍이 나오게된 이유가 이런 맵입니다. 일렬드랍하기가 약간 애매합니다. 이럴 경우는 물약이 뭐냐에 따라 좀 다르긴 합니다. 

라이트닝을 안가지고 얼음스펠을 2개 가지고 가시면 ㅅ 자 드랍후 에어 디펜과 인페 멀티를 동시에 얼리면서 ㅅ자 드랍하시면 됩니다. 

라이트닝 가지고 가셔서 얼음스펠이 하나면, ㅅ자 드랍후 캐슬병력을 떨꾸는 쪽 (풍선이 더 많은쪽) 의 인페멀티를 얼려주시면 됩니다. ㅅ자 진입이 더 유리합니다. 일자 드랍을 하실꺼면 11시가 나을듯

ㅅ자 드랍이 나온 이유도 알고보면, 저 위에서 맵을 절반 짜르고 절반 부시기를 설명드렸잖아요?

맵이 90도 회전한거니, 12시에서 1렬 드랍이라고 생각하시면 됩니다. 





위타를 오른쪽으로 쏠리게 하고, 9시쪽으로 오면 벽이 겹겹이라서 영웅이 옆으로 세라고 만든 맵입니다. 

이 맵은 처음 알려드린 것 처럼, 11시 일렬 드랍하시면 됩니다. 인페멀티랑 위타가 동시에 업니다.

라바의 드랍은 11시 1시 2개 드랍후 11시 벌미 일렬드랍하시면 됩니다.






요즘 유행하는 맵입데, ㅅ자 드랍을 생각하게 하다가 ... ㅅ자 드랍 잘못하면 망하는 맵입니다. 

결국 6개의 디펜의 위치가 젤 중요한데 (위자드 4개, 인페멀티2개) 4-5시 일렬드랍이 무난합니다. 영웅이 4시에서 마무리 하러 들어가면 됩니다.






3. 변형맵 (저렇게 지도의 절반에 절반의 건물을 놓지 않은 맵)의 경우는 ... 전략을 잘 짜야 합니다. 
일단 맵의 절반에 건물 절반이 있어야 합니다. 그렇지 않으면 벌룬이 무참히 죽은 다음에 마무리 하느라 진땀을 흘려야 합니다. 

위타랑, 인페멀티가 몰려 있어도 ... 얼리거나, 라바가 시선을 끌어주면, 그쪽으로 빠르게 진입하는 것도 괜찮습니다.


벌룬으로 가장 어려운 맵중 하나 입니다. 12시에 ㅅ자 드랍을 하면, 30% 정도에서 끝나버리고, 영웅만 달랑 남는 아주 난처한 맵이죠 ... 이 맵의 경우는 4시 드랍이 가장 투스타 확률이 좋습니다. 라바를 4시 5시에 떨구고, 위타 두개를 잡아주는 동안 위타를 벌룬이 부셔야 하는 맵입니다.  3시쪽에 캐슬을 떨구워서 벌룬이 3시쪽이 좀 더 많게 뿌리시면, 영웅 3시 드랍으로 마무리 할 수 있습니다.




4. 위타가 몰려 있으면 먼저 부시고 들어가는게 좋지 않을까? 

손가락 터치에 자신이 있으면 가능합니다만, 가장 좋은 전략은 안진다에 있기 때문에, 일단 안지는 것을 먼저 원칙으로 하시는게 좋습니다. 4000 넘으시면, 그 담부터는 본인이 전략짜실테니 .. 그때까지만 참고하십시요.


5. 라바 떨군후 바로 이어서, 벌룬 일렬 문지르기 (또는 4손가락 톡톡)가 이어져야 합니다. 그리고 미니언도 바로 이어서 들어가야 합니다. 그리고 물약을 쓴 후 동시에  1  1  1 이런식으로 진입이 되어야 합니다. 

진입 초창기에 얼마나 연이어서 잘 드랍하는지가 중요합니다. 하나씩 드랍하면 속도가 안나옵니다. 4finger 드랍이 중요합니다. 



6. 맵을 보는 것은 본인 취향이랑 직결됩니다. 아무리 맵을 잘봐도 ... 트랩 설치에 따라서 달라지니까요.
하지만, 일단 벌룬을 드랍하여, 50%를 부신다를 기본으로 생각하신다면, 절대 지지 않고 트로피를 올리실 수 있습니다. 


다음에는 ㅅ자 드랍을 하는 방법하고, ㅅ자 드랍이 유리한 경우 맵들을 살펴보고, 상세하게 공략법을 기술하겠습니다. 

이상 맵보는 법이였습니다.

감사합니다. 




2편..
출처 : http://cafe.naver.com/koreabros/6521

hans 입니다. 연말에 일이 많아서 플레이 시간이 적다보니

로컬 랭킹이 많이 떨어졌네요 --; (로컬 10등은 유지해야 하는데 20등이라니 ㄷㄷㄷ)

그래도 공략법을 소흘할 수는 없죠 .. 클랜원들의 실력 향상이 항상 뿌듯한 한스입니다. 

라바 벌미 공략에서 제일 중요한 맵 보는 법에 대해서 설명드렸죠?

http://cafe.naver.com/koreabros/6396  그 다음에 중요한 것은 위저드 타워와 인페르노 타워의 위치
(사실 맵 보는 법의 확장선상에 있습니다.)

의외로(?) .. 라벌미의 패배가 발생하는 경우는 ... 위저드 타워 입니다.  (캐슬 위저드도 무섭죠 ㅋ)

위저드 타워에 대해서 잘 모르시는 분들이 계셔서 .. 다시 말씀드립니다.  (고수들도 이걸 신경안쓰시고 들어가시는 경우가 있습니다.) 위저드 타워  1.3초에 한번 공격을 하며 62.4 가 한방 공격력입니다. 

벌룬의 체력이 545 입니다. 9방 맞으면 벌룬이 폭삭하죠. (잉, 그렇게 많이 맞아야 해?)



위저드 타워의 경우 7칸이 공격 가능 칸수 입니다. 잘 보시면, 위타 건물 옆으로 6칸이 공격 가능 범위입니다.
벽이 한칸이니 ... 위타의 경우 6칸을 잘봐야 합니다. 

인페의 경우 9칸입니다. 
인페의 경우는 ... 얼음 마법을 쓰기 때문에, 사실 정확하게 데미지 계산을 안하시는 경우가 있는데
인페의 초당 공격력은 42이고, 5개의 멀티 셀렉을 합니다. (싱글은 설명하지 않겠습니다. 벌룬에게 큰 의미가 없어서)
(추가로, 인페르노 타워의 싱글모드는 5초후 1400 데미지이기 때문에, 4초까지는 140 데미지로 약하기 때문에 4초쯤 얼리는 것이 좋습니다. )

인페가 42, 위타가 63 합치면 100이 넘는 데미지가 들어갑니다. 

위타 하나랑 인페 하나에 동시에 벌룬때가 걸리면 ... 5초면 ... 벌룬때가 사라집니다. 

그런데, 다른 디펜도 같이 공격을 하니, 보통 3초 정도면 사라집니다.

거기에 173 짜리 빨간 풍선이 걸리면, 3초면 사라집니다. 


그러기 때문에 중앙에 벌룬이 진입할때 .. .위타 옆에 인페 멀티가 걸리고, 빨풍을 두방 맞으면 2초에 벌룬때가 사라집니다. 

가끔 영상 보시면, 벌룬때가 사라지는 것이 .. 빨풍 (빨간 대공폭탄) 2개에 뭉텅이 맞고 ... 인페 멀티랑 위타에 맞으면 몽땅 사라지는 것을 보실 수 있습니다. 


자, 그러면 어떻게 해야 하느냐?

위저트 타워의 6칸 범위안에 ... 라바가 위치해서, 에어 디펜을 공격하고 있는 상황에 ...

위저드 타워를 벌미가 덮치면 .. 이깁니다. 

자. .. 그럼 진영을 하나 살펴볼까요 ... 

우리 클랜의 ... 지주이신 .. 선민형님의 맵을 보도록 합시다. 

--; 요즘 바쁘셔서, 게임을 안하시고

라바 나온지 두달이 넘었는데 아직도, 맵을 못바꾸셔서 그렇기 한데 ... (죄송합니다. 형님. 사랑합니다. ^^)




위아래, 위위 아래 (제가 나이는 먹었지만 트랜디 하잖아요 ㅋ) ... 모두 ...  위저드 타워가 ... 에어디펜의 5칸 거리에 있습니다.

이러면, 라바가 위저드 타워의 시선을 가지고 있는 상태에서 ... 벌룬이 위타를 부십니다. 

이럴 경우 동시에 2개의 위타를 처리할 수 있으니

ㅅ 자 드랍을 하는 것입니다. 

ㅅ 자 드랍은 다이아몬드 진영에 무조건 하는 것이 아니라 ... 위타가 에어디펜 근처에 있어서, 라바가 위타 시선을 가질때만

합니다. 그게 2개고, 라바가 2개니까 .. 그렇게 하는 것입니다. 


라바를 3개 가지고 가는 것이 안정적이라는 분들도 요즘 나오고 계신데 .. 그 경우는 다음 전략에서 다루겠습니다. 

감사합니다.


참고영상
http://youtu.be/uWOiXo_tyVM


'life > game' 카테고리의 다른 글

[coc]10홀 클랜전 맵  (0) 2015.04.16
Rift 소울설명  (0) 2011.05.19
디아2 할일  (2) 2010.05.26
디아2 큐브조합공식  (0) 2010.05.26
Diablo2 쓸만한 룬워드아이템  (0) 2010.05.25
Posted by 수라
web standard/jquery2014. 10. 13. 17:09

출처 : http://www.mimul.com/pebble/default/2013/03/06/1362559765579.html


jQuery 1.7에서 .bind(), .live(), .delegate()가 .on()으로 통합되었다길래 좀 살펴보았다.

개요

.bind(), .live(), .delegate(), .on()은 이벤트에 관련된 기능으로, 먼저 각각의 기능들을 살펴보는 것이 순서인것 같아 먼저 기능들을 살펴본다.

.bind()는 가장 많이 쓰는 이벤트 설정 함수이다. DOM이 로드된 후 추가된 element들에 대해서 event handler를 처리할 수 없고, .live(), .delegate()는 나중에 추가된 element들의 이벤트들을 처리할 수 있다.

foo에 이벤트를 설정하고 싶다면 아래와 같이 사용된다.
$(".foo").bind("click", handler);
$(".foo").on("click", handler);

.delegate()는 이벤트 설정을 부모에 대해 한다. 이런 방식을 이벤트 대리자라고 명명한다.

.foo에 이벤트를 설정하면 다음과 같이 사용된다.
$("#container").delegate(".foo", "click", handler);
$("#container").on("click", ".foo", handler);

.live()는 이벤트의 설정 대상이 document가 된다.

foo에 이벤트를 설정하고 싶다면 아래와 같이 사용된다.
$(".foo").live("click", handler);
$(document).on("click", ".foo", handler);

.on()을 사용해야 하는 이유

1. .on()으로 통합 될 예정

.live()와 .die()는 jQuery 1.9에서 빠졌고(1.7 Deprecations), .delegate()도 향후 없어질 예정이어서 .on을 사용하는 습관을 가지자.

2. .on()으로 여러 종류의 이벤트 설정이 가능

- 첫번째 인자에 공백로 구분자로 해 여러 이벤트에 대응이 가능하다.
$(".foo").on("change blur", handler);

- 각 이벤트에 여러 처리자를 둘 수 있다.
. 하나의 elements에 여러 이벤트 설정
$(".foo").on({ 
  "change" : function(){...},
  "blur" : function(){...} 
});

. 이벤트 대리자에서의 여러 이벤트 설정
$("#container") on ( { 
  "change" : function(){...},
  "blur" : function(){...} 
}, ".foo");


'web standard > jquery' 카테고리의 다른 글

마우스 휠 이벤트 체크  (0) 2016.10.05
[jquery] ajax 방법  (0) 2014.04.11
jQuery Slider plugin  (0) 2014.01.09
width가 100%인 이미지에 맵 걸기  (0) 2013.04.22
좌우(상하) 슬라이드  (0) 2012.02.29
Posted by 수라
카테고리 없음2014. 5. 27. 19:05

출처 : http://sir.co.kr/bbs/board.php?bo_table=pb_lecture&wr_id=167
https://docs.google.com/document/d/17iR_7DstddOKDQsdut7DNbc6y3b7CgsA7-qxsWUwo0g/edit?pli=1


목차

  1. 우선 해야할 일
    1. viewport meta tag 설정
    2. IE9이하를 위한 설정
  2. CSS3 미디어 쿼리
    1. 역사
    2. 문법
    3. 미디어 속성
    4. 예제
  3. 스크린 경계치 (screen breakpoints)
    1. 대표적인 경계치
    2. 트위터 Bootstrap의 경계치
    3. mediaquri.es의 경계치
    4. 자연스러운 경계치 (natural breakpoints)
    5. 스크린 경계치 선택
  4. 참고문헌/자료


참고문헌/자료

  1. html5-boilerplate, Viewport and Media Queries: The Complete Idiot's Guide, 구글문서, 2011
  2. quirksmode.org, A pixel is not a pixel is not a pixel, 2010
  3. 456bereastreet.com, Controlling text size in Safari for iOS without disabling user zoom, 2010.
  4. W3C Recommendation, Media Queries, 2012
  5. Safari Web Content Guide, Configuring the Viewport
  6. Roger Johansson, Controlling text size in Safari for iOS without disabling user zoom, 456bereastreet.com, 2010
  7. Android Developers, Targeting Screens from Web Apps
  8. GionaF, css3-mediaqueries.js VS respond.js, Stack Overflow, 2011
  9. Patrick Grady, Re-thinking Breakpoints in Responsive Design, 2012


Posted by 수라
web standard/jquery2014. 4. 11. 16:09

출처 : http://rocabilly.tistory.com/27


[jQuery] Ajax 방법

 

- 각 Ajax 방식을 호출하는 방법

  1. // 버튼 클릭시 ajax 실행  
  2.     var url="test.aspx";  
  3.     var params="param1="+param1+"¶m2="+param1;  
  4.   
  5. $("#btnOK").click(function(){  
  6.       
  7.     $.ajax({      
  8.         type:"POST",  
  9.         url:url,      
  10.         data:params,      
  11.         success:function(args){   
  12.             $("#result").html(args);      
  13.         },   
  14.         beforeSend:showRequest,  
  15.         error:function(e){  
  16.             alert(e.responseText);  
  17.         }  
  18.     });  
  19.       
  20. });  

 

 

1. $.post() 방식

 

- 서버에 데이터를 HTTP POST 방식으로 전송한 후 서버측 응답 받을 때 사용

 

[형식]

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

 

- url : 요청 Url

- data : 요청과 함께 서버에 보내는 string 또는 map

- success(data,textStatus,jqXHR) : 요청이 성공일때 실행되는 callback 함수

- dataType : 서버에서 내려온 data 형식. ( default : xml,json,script,text,html )

 

 

[$.ajax 로 표현]

  1. $.ajax({  
  2.   type: 'POST',  
  3.   url: url,  
  4.   data: data,  
  5.   success: success,  
  6.   dataType: dataType  
  7. });  

 

 

[사용예]

  1. // 요청 Url 만 , 리턴 결과값 무시  
  2. $.post("http://web/test/");  
  3.   
  4. // 요청 Url + 추가적으로 보내는 Json Data, 리턴 결과값 무시  
  5. $.post("http://web/test/", { name: "John", time: "2pm" } );  
  6.   
  7. // 요청 Url + 추가적으로 보내는 Array Data, 리턴 결과값 무시  
  8. $.post("http://web/test/", { 'choices[]': ["Jon""Susan"] });  
  9.   
  10. // 요청 Url + 폼데이터, 리턴 결과값 무시  
  11. $.post("http://web/test/", $("#testform").serialize());  
  12.   
  13. // 요청 Url, xml(또는 html)리턴 결과값  
  14. $.post("http://web/test/",   
  15.       function(data) {    alert("Data Loaded: " + data);  });  
  16.   
  17. // 요청 Url + 추가적으로 보내는 Json Data, 리턴결과값, 결과값 형식  
  18. $.post("http://web/test/", { name: "John", time: "2pm" },    
  19.       function(data) {    process(data);  },   "xml" );  
  20.   
  21. // 요청 Url + 추가적으로 보내는 Json Data, 리턴결과값(json 다루는 형식), 결과값 형식  
  22. $.post("http://web/test/", { "func""getNameAndTime" },    
  23.       function(data){      
  24.                      console.log(data.name); // John      
  25.                      console.log(data.time); //  2pm    
  26.       }, "json");  

 

 

 

 

2. $.get() 방식

 

- 서버에 데이터를 HTTP GET 방식으로 전송한 후 서버측 응답 받을 때 사용

 

[형식]

jQuery.get(  url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

 

- url : 요청 Url

- data : 요청과 함께 서버에 보내는 string 또는 map

- success(data,textStatus,jqXHR) : 요청이 성공일때 실행되는 callback 함수

- dataType : 서버에서 내려온 data 형식. ( default : xml,json,script,text,html )

 

 

[$.ajax 로 표현]

  1. $.ajax({  
  2.   url: url,  
  3.   data: data,  
  4.   success: success,  
  5.   dataType: dataType  
  6. });  

 

 

[사용예]

  1. // 요청 Url 만 , 리턴 결과값 무시  
  2. $.get("http://web/test/");  
  3.   
  4. // 요청 Url + 추가적으로 보내는 Json Data, 리턴 결과값 무시  
  5. $.get("http://web/test/", { name: "John", time: "2pm" } );  
  6.   
  7. // 요청 Url + 추가적으로 보내는 Array Data, 리턴 결과값 무시  
  8. $.get("http://web/test/", { 'choices[]': ["Jon""Susan"] });  
  9.   
  10. // 요청 Url, xml(또는 html)리턴 결과값  
  11. $.get("http://web/test/"function(data) {    alert("Data Loaded: " + data);  });  
  12.   
  13. // 요청 Url + 추가적으로 보내는 Json Data, 리턴결과값, 결과값 형식  
  14. $.get("http://web/test/", { name: "John", time: "2pm" },  function(data) {    process(data);  },   "xml" );  
  15.   
  16. // 요청 Url + 추가적으로 보내는 Json Data, 리턴결과값(json 다루는 형식), 결과값 형식  
  17. $.get("http://web/test/", { "func""getNameAndTime" },  function(data){    console.log(data.name); // John    console.log(data.time); //  2pm  }, "json");  

 

 

 

 

3. $.getJSON() 방식

 

- 서버에 데이터를 HTTP GET 방식으로 전송한 후 서버측 응답을 JSON 형식으로 받을때 사용 

 

[형식]

jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )

 

- url : 요청 Url

- data : 요청과 함께 서버에 보내는 string 또는 map

- success(data,textStatus,jqXHR) : 요청이 성공일때 실행되는 callback 함수

 

 

[$.ajax 로 표현]

  1. $.ajax({  
  2.   url: url,  
  3.   dataType: 'json',  
  4.   data: data,  
  5.   success: callback  
  6. });  

 

 

[사용예]

  1. <script>   
  2.     $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",   
  3.     {   
  4.         tags: "mount rainier",   
  5.         tagmode: "any",   
  6.         format: "json"   
  7.       },   
  8.       function(data) {   
  9.         $.each(data.items, function(i,item){   
  10.           $("<img/>").attr("src", item.media.m).appendTo("#images");   
  11.           if ( i == 3 ) return false;   
  12.         });   
  13.     });  
  14.   </script>  

 

 

 

 

4. $.ajax() 방식

 

- 서버에 데이터를 HTTP POST,GET,JSON 모든 방식 전송 가능한 통합적인 함수

- 다양한 Parameter 존재

 

[형식]

jQuery.ajax( url [, settings] ) [ 1.5 이상버젼 ] ,jQuery.ajax( settings ) [ 1.0 이상버젼 ]

 

- url : 요청 Url

- settings : key/value 쌍으로 된 Ajax 요청 Set ( optional )

 

 

[사용예]

  1. // 요청 Url + 추가적 데이터, 완료된 후 리턴 메시지를 받음  
  2. $.ajax({   
  3.       type: "POST",   
  4.       url: "http://web/test/",   
  5.       data: { name: "John", location: "Boston" }   
  6. }).done(function( msg ) {   
  7.       alert( "Data Saved: " + msg );   
  8. });  
  9.   
  10. // 최종 버전 리턴 Html 가져오기  
  11. $.ajax({   
  12.       url: "http://web/test/",   
  13.       cache: false   
  14. }).done(function( html ) {   
  15.       $("#results").append(html);   
  16. });  
  17.   
  18. // 서버에 데이터를 보낸 후 저장처리, 그리고 사용자에게 리턴 완료 메시지 반환  
  19. var menuId = $("ul.nav").first().attr("id");   
  20. var request = $.ajax({   
  21.     url: "http://web/test/",   
  22.     type: "POST",   
  23.     data: {id : menuId},   
  24.     dataType: "html"   
  25. });   
  26.    
  27. request.done(function(msg) {   
  28.     $("#log").html( msg );   
  29. });   
  30.    
  31. request.fail(function(jqXHR, textStatus) {   
  32.     alert( "Request failed: " + textStatus );   
  33. });  
  34.   
  35.   
  36. // 자바 스크립트 로딩 및 실  
  37. $.ajax({   
  38.     type: "GET",   
  39.     url: "test.js",   
  40.     dataType: "script"   
  41. });  

 

 

 

4.1 $.ajaxSetup()

 

- 공통적인 기본 ajax 요청을 미리 설정함

 

[형식]

jQuery.ajaxSetup( options )

 

- optional : default Ajax 요청의 설정값 ( key/value )

 

 

[사용예]

  1. // 미리 ajaxSetup에 기본사항들을 설정한 후 ajax 로 각각 호출  
  2. $.ajaxSetup({  
  3.     url: 'http://web/test/',  
  4.     global: false,   
  5.     type: "POST"   
  6.   
  7. });  
  8. $.ajax({  
  9.       // url not set here; uses 'http://web/test/'  
  10.       data: {'name''Dan'}  
  11. });  
  12. $.ajax({  
  13.       // url not set here; uses 'http://web/test/'  
  14.       data: {'name''John'}  
  15. });  

 

 

 

 

5. $.load() 방식

- 외부 컨텐츠 가져올때 사용

 

[형식]

.load( url [, data] [, complete(responseText, textStatus, XMLHttpRequest)] )

 

- url : 요청 Url

- data : 요청과 함께 서버에 보내는 string 또는 map

- complete(responseText, textStatus, XMLHttpRequest) : 요청이 완료될때 실행되는 callback 함수

 

 

[사용예]

  1. //  Html Content 로딩  
  2. $('#result').load('ajax/test.html');  
  3.   
  4. //  Html Content 로딩 후 메시지  
  5. $('#result').load('ajax/test.html'function() {  
  6.   alert('Load was performed.');  
  7. });  
  8.   
  9. //  Html Content #container Target 로딩  
  10. $('#result').load('ajax/test.html #container');  
  11.   
  12. //  array parameter 전달 후 Html Content 로딩  
  13. $("#objectID").load("test.asp", { 'choices[]': ["Jon""Susan"] } );  


'web standard > jquery' 카테고리의 다른 글

마우스 휠 이벤트 체크  (0) 2016.10.05
이벤트 설정 시에 jQuery의 .on()을 사용하자.  (0) 2014.10.13
jQuery Slider plugin  (0) 2014.01.09
width가 100%인 이미지에 맵 걸기  (0) 2013.04.22
좌우(상하) 슬라이드  (0) 2012.02.29
Posted by 수라