Client-Side/Javascript2010. 12. 29. 15:21
클로저로 인해 해당 블록내의 코드는 만들어진 순간의 환경 정보를 그대로 가지고 있다. 그렇기 때문에 클로저안에서 선언된 변수는 생성 당시의 값을 그대로 유지할 수 있다. 

클로저가 필요한 예제
var lists = [];
for(idx = 0; idx < 10; idx++){
    lists[idx] = $('<li>'+idx+'</li>');

    var target = idx;
    lists[target].click(function() {
        alert(target);
    });

    $('#test').append(lists[idx]);
}
for 반복문 내부에서 태그를 생성해서 클릭 이벤트를 붙여준다. 이때 "target" 변수는 계속 count가 올라가기 때문에 해당 태그들은 클릭 이벤트가 붙는다. 하지만 "target" 변수는 9로 남아있기 때문에 모든 태크를 클릭해도 9를 본다.

클로저로 구현한 예제
var lists = [];
for(idx = 0; idx < 10; idx++){
    lists[idx] = $('<li>'+idx+'</li>');

    (function() {
        var target = idx;
        lists[target].click(function() {
            alert(target);
        });
    }());

    $('#test').append(lists[idx]);
}
클로저 내부에 구현된 "target" 이라는 지역변수에 0~9까지 값이 할당된다. 클로저 내부에 익명함수가 생성되는 순간의 "target" 값을 기억하기 때문에 각 태그를 클릭하면 그에 맞는 숫자를 본다.

아래 소스는 해당 예제를 실행할 수 있는 코드이다. 테스트의 편의를 위해 하나의 파일로 만들었다.
가장 밑에 Tester.init('on')은 클로저를 수행하는 코드이고, Tester.init('off')로 변경하면 클로저를 수행하지 않는다.



Posted by 준피
Client-Side/HTML, CSS2010. 6. 7. 16:04
text embossing effect

<주요 속성 요약>
#test1 {
     color: #ccc; font-size: 55px; font-weight: bold; background-color: #b38f00;
     text-shadow: 0 1px 0 #fff, 0 -1px 0 #000; 
     border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;
}

<속성 설명 >
- 첫번째 : X좌표     - 두번째 : Y좌표     - 세번째 : 블러     - 네번째 : 색상


box highlight effect


<주요 속성 요약>
#test2 {
     color: #ccc; font-size: 55px; font-weight: bold; background-color: #bbb;
     text-shadow: 0 1px 0 #fff, 0 -1px 0 #000;
     border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px;
   box-shadow: 4px 4px 4px #555, -4px -4px 4px #555, 4px -4px 4px #555, -4px 4px 4px #555;
     -moz-box-shadow: 4px 4px 4px #555, -4px -4px 4px #555, 4px -4px 4px #555, -4px 4px 4px #555;
     -webkit-box-shadow: 4px 4px 4px #555, -4px -4px 4px #555, 4px -4px 4px #555, -4px 4px 4px #555;
}

<속성 설명>
- 첫번째 : X좌표     - 두번째 : Y좌표     - 세번째 : 블러     - 네번째 : 색상

linear gradient effect


<주요 속성 요약>
test3 {                    
     background: -moz-linear-gradient(90deg, #1a1a1a, #808080);
     background: -webkit-gradient(linear, 0 0, 0 100%, from(#808080), to(#1a1a1a));
}

<속성 설명 -moz-linear-gradient>
- 첫번째 : 각도. 0deg 왼쪽에서 시작, 90deg 아래에서 시작
- 두번째 : 시작 색     - 세번째 : 끝나는 색

<속성 설명 -webkit-gradient>
- 첫번째 : 타입 (radial or linear)
- 두번째 : 해당 타입이 적용될 영역의 %단위, 오른쪽 밑
- 세번째 : 해당 타입이 적용될 영역의 %단위, 왼쪽 위
- 네번째 : 시작 색     - 다섯째 : 끝나는 색


'Client-Side > HTML, CSS' 카테고리의 다른 글

HTML5 meta Tag  (0) 2010.06.07
[html]테이블의 올바른 사용법  (0) 2009.11.17
hover를 위한 li태그와 a태그.  (0) 2009.08.20
div(block element) vs span(inline element)  (0) 2009.03.24
name=contents readOnly  (0) 2006.11.27
Posted by 준피
Client-Side/HTML, CSS2010. 6. 7. 15:34
1. 문서 설명 : 검색엔진에 좀 더 노출 시킬 수 있다.
<meta name="description" content="HTML5 Tutorial" />

1. 문서 키워드 : 검색엔진에 좀 더 노출 시킬 수 있다.
<meta name="keywords" content="HTML5,CSS3,JavaScript" />

1. 문서 작성자를 정의
<meta name="author" content="Jace Park" />

1. 문서 수정자와 날짜 정의
<meta name="revised" content="Jace Park, 07/06/2010" />

1. 문자인코딩 정의
<meta charset="cp949" />

1. 페이지 리다이렉트 (5초 뒤, 해당url로 이동한다.)
<meta http-equiv="refresh" content="5;url=http://www.abc.com/" />

1. 페이지 리플레시 (5초 간격)
<meta http-equiv="refresh" content="5" />

1. 문서 편집기 정의
<meta name="generator" content="Gvim 7.2">

1. 어플리케이션 이름 정의: 만일 어플리케이션 이름이 없다면 정의하지 안아도 좋다.
<meta name="APPLICATION-NAME" content="Long headed application">

1. 웹크롤러에 노출여부 결정 (noindex - 문서 긁어가지 않음, nofollow - 문서 내 링크 긁어가지 않음)
<meta name="robots" content="noindex,follow" />
Posted by 준피
Client-Side/Javascript2010. 6. 6. 18:09

Javascript로 Zoo Keeper를 만들었습니다.

더 깨질 블럭이 없는 경우 판을 재배치하는 기능과
동시에 여러개 블럭을 움직였을 때의 경우가 구현이 안되었습니다.
그 밖에 미쳐 발견하지 못한 버그가 있을 수 있겠지만
일단은 프로토타입 거의 완성입니다!

물론 css로 눈속임을 했고, 기능이 완벽하지 않지만 뿌듯하네요.
이번 프로젝트를 통해서 게임을 만들기 위해서 어떤 고민을 해야하는지를 꺠달았습니다.

향후 구현하지 못한 부분을 완성시키고,
html5, css3, javascript UI library(스크립타큘러스 또는 제이쿼리 UI 등등)를 이용해서
좀더 화려한 게임으로 업그레이드 시키고 싶네요.
Posted by 준피
Client-Side/Javascript2010. 5. 11. 10:40
jQuery 기반 UI Library인 jQuery TOOLS가 나온 소식을 몇일전에 접했습니다.

자바스크립트 코드 몇줄이면 멋진 UI가 튀어나오더군요.

너무 재밌어서 데모를 시연해보다가 탭 디자인 한개를 직접 사용해봤습니다.


<탭 디자인 그림파일>


1. jQuery와 jQuery TOOLS 링크입니다.

2. css3를 적용했습니다. (참고사이트 : http://www.designlog.org/2512076)

3. HTML

4. jQuery TOOLS를 사용한 자바스크립트


이 링크를 따라가시면 jQuery TOOLS 데모를 볼 수 있습니다.
      

'Client-Side > Javascript' 카테고리의 다른 글

[JavaScript] Closure 예제  (0) 2010.12.29
JavaScript - Zoo Keeper  (0) 2010.06.06
[Prototype, Script.aculo.us] twitter Top tweets 따라하기  (0) 2010.04.28
이메일 체크.  (0) 2009.09.24
javascript mootools addEvent 주의사항.  (0) 2009.09.17
Posted by 준피