레이블이 Javascript인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Javascript인 게시물을 표시합니다. 모든 게시물 표시

2010. 6. 6.

JavaScript - Zoo Keeper


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

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

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

향후 구현하지 못한 부분을 완성시키고,
html5, css3, javascript UI library(스크립타큘러스 또는 제이쿼리 UI 등등)를 이용해서
좀더 화려한 게임으로 업그레이드 시키고 싶네요.

2010. 5. 10.

CSS3와 jQuery TOOLS 를 사용한 탭디자인

jQuery 기반 UI Library인 jQuery TOOLS가 나온 소식을 몇일전에 접했습니다.

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

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


<탭 디자인 그림파일>


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

펼쳐두기..


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

펼쳐두기..


3. HTML

펼쳐두기..


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

펼쳐두기..



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

2010. 4. 27.

[Prototype, Script.aculo.us] twitter Top tweets 따라하기



















twitter.com에서 Top tweets에서의 push notification이 흥미로워서

javascript에서 흉내만 내봤다.

오랜만에 prototype과 scriptaculous를 써서 그런지 버벅거리긴 했다.

---------------------------<Source Code>----------------------------------
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js" type="text/javascript" charset="utf-8"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.3/effects.js" type="text/javascript" charset="utf-8"></script>
    <style type="text/css" charset="utf-8">
        #input {
            width: 200px;
            margin-bottom: 5px;
        }
        #button {
            width: 60px;
            height: 30px;
            margin-bottom: 10px;
            border: 1px solid #CCCCCC;
        }
        #wrapper {
            height: 200px;
            overflow: hidden;
        }
        #comments {
            width: 200px;
            height: 250px;
            overflow: hidden;
        }
        .talk {
            height: 49px;
            color: #FFFFFF;
            background-color: #23A420;
            border-bottom: 1px solid #000000;
        }
    </style>
</head>
<body>
    <div>
        <input type="text" id="input" />
        <div id="button">click</div>
    </div>
    <div id="wrapper">
        <div id="comments">
            <div id="5" class="talk">
                <div>5</div>
            </div>
            <div id="4" class="talk">
                <div>4</div>
            </div>
            <div id="3" class="talk">
                <div>3</div>
            </div>
            <div id="2" class="talk">
                <div>2</div>
            </div>
            <div id="1" class="talk">
                <div>1</div>
            </div>
        </div>
    </div>
    <script type="text/javascript" charset="utf-8">
    <!--
        // setting id of first-child
        var comments = $('comments').childElements();
        var nowId = comments[0].id;

        $('button').observe('click', function () {
            // create new comment element
            var superDiv = document.createElement('div');
            superDiv.className = 'talk';
            nowId++;
            superDiv.id = nowId;
           
            var childDiv = document.createElement('div');
            childDiv.innerHTML = $('input').value;
            superDiv.appendChild(childDiv);
           
            // attach new comment
            $('comments').insert({
                top: superDiv
            });
           
            new Effect.SlideDown(superDiv);
            new Effect.Opacity(superDiv, {from: 0, to: 1});

            // remove last comment
            var newComments = $('comments').childElements();
            var len = newComments.length;
            newComments[len-1].remove();
        });
    //-->
    </script>
</body>
</html>

2009. 12. 5.

이메일 체크.

var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var email = $('email').value;

if( !email.match(emailRegEx) ){
window.alert("이메일 양식에 맞게 입력하세요.");
}

- 09년 9월 24일 15시 4분 -

javascript mootools addEvent 주의사항.

$(element).addEvent(event, function);    <- addEvent 문법.


mootools에서 addEvent를 사용하는 경우 주의사항이 있다.
function부분을 잘 살펴 보자.

만일 함수부분에서 메소드를 호출하는 경우,

$(element).addEvent(click, Dog.bark());
이런식으로 사용하게 되면 돔에 이벤트 리스너를 붙임과 동시에 실행을 하게 된다.

$(element).addEvent(click, Dog.bark);
이렇게 하면 실행은 하지 않은채 이벤트 리스너만 붙인다.


prototype의 경우도 마찬가지이다.

$(element).observe(click, Dog.bark());
-> 이벤트 리스너를 돔에 붙임과 동시에 실행.
$(element).observe(click, Dog.bark);
-> 이벤트 리스너를 돔에 붙인다. 실행은 하지 않는다.

- 09년 9월 17일 23시 4분 -

jsdoc 실행하기.


jsdoc 실행하기.

간만에 실행했더니 가물가물 하네요.

워낙 코드보기가 쉽지 않다는 자바스크립트를 위해 나왔죠.

- 09년 9월 15일 16시 22분 -

Prototype => Element.extend

this.a = document.createElement('a');

var Item = this.a;

Item.toggleClassName('class');

IE에서 문제가 생길 수 있다.

=========================================

IE에서 createElement를 이용해서 DOM을 생성했다면,
그리고 Prototype의 명령어를 사용해야 한다면,

Element.extend 를 사용할 것.

참고
http://prototypejs.org/learn/extensions

- 09년 8월 20일 14시 44분 -