웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
DHTML의 시작 - Typing 스크립트 (예제)
2002.04.19 13:10
정작 DHTML에 대한 강좌가 폼쪽으로 하다보니 다른 강좌로 바뀌는 것 같아서
다시 원래 의도한 대로 DHTML도 섞어서 해보기로 했습니다.
NeoM MVP II 버전에 쓰일 모듈로써 하나씩 시험삼아 만들어 본 스크립트지요.
지금은 테스트를 위해 홈페이지에 게시판에 Notice시 삽입해서 사용하고 있지요..
미리보기에서 확인해보실 수 있습니다.
스크립트 길이도 얼마되지 않으니 적당한 쓸때가 있을 듯 하네요..
주석 보시고 소스 분석 연습도 해보시는 것도 좋지요.
<SCRIPT LANGUAGE="JavaScript">
<!--
var help_text=new Array(); // 타이핑할 문자열을 배열로 지정하지요. 아래처럼 순서대로 넣습니다.
help_text[0]="대충 타이핑 스크립트 만들어 봤습니다."
help_text[1]="이름은 Neo Crazy Typing이라구 "
help_text[2]="지었지요.. 어디 쓸만한데 있으심"
help_text[3]="써 보시지요..."
var i=0, j, k=0; // 변수지정, 타이핑 카운트를 조절하기 위한 변수들이지요.
var helpID; // 타임아웃 시킬 아이디를 지정합니다. (마우스 오버시 타이핑을 멈추게 하려고 사용하지요
var tail="▒"; // 글자 뒤의 커서 역할을 하는 모양이지요
function help(){
el=document.all.typing; // 표시할 엘리먼트를 지정합니다. (typing이 id지요)
if(help_text[k].length+r>=i) // 문자열의 길이에 적당한 숫자를 더해서 i값과 비교
{
if(i<r){ // 초기 몇번 커서의 깜박임을 주는 효과지요
if(el.innerText==tail) // 아래 부분이 깜박이는 부분..
el.innerText=" ";
else
el.innerText=tail;
helpID=setTimeout("help()",time2); // 함수를 다시 호출합니다.
j=help_text[k].length+r; // 현재 했던것을 다시 반복하기위해 필요하지요
}
else{
el.innerText=help_text[k].substring(0,i-r)+tail; // 깜박임을 끝내고 실지 글을 씁니다.
helpID=setTimeout("help()",time1); // 역시 자신을 다시 호출하지요.
}
i++;
}
else // 아래부분은 윗 함수의 역실행으로 보시면 됩니다.
{
if(help_text[k].length<j){
if(el.innerText==help_text[k])
el.innerText=help_text[k]+tail;
else
el.innerText=help_text[k];
helpID=setTimeout("help()",time2);
}
else{
el.innerText=help_text[k].substring(0,j)+tail;
helpID=setTimeout("help()",time1);
}
if(j==0){ // 한 사이클이 실행되면
i=0;r=rnd(30);time1=rnd(50); time2=rnd(200); // 타이핑 속도나 지연시간을 랜덤하게 다시 설정하지요
if(help_text.length-1>k) // 다음 문자열을 불러옵니다.
k++;
else
k=0;
}
j--;
}
}
function rnd(n) { return Math.floor(Math.random()*n)+1; } // 랜덤 수를 뽑아오는 게지요
var time1=rnd(50), time2=rnd(200), r=rnd(30); // 초기값을 가져옵니다.
//-->
</SCRIPT>
<body onload="help()">
<span id=typing onMouseout="help()" onMouseOver="clearTimeout(helpID)"></span>
음.. 미리보기는 http://neom.new21.net/zboard/zboard.php?id=qna 요기서 보시면 되구요..
가끔가다 시간 나면 소스 하나씩 스터디 중간중간 만들어 올리도록 하지요
다시 원래 의도한 대로 DHTML도 섞어서 해보기로 했습니다.
NeoM MVP II 버전에 쓰일 모듈로써 하나씩 시험삼아 만들어 본 스크립트지요.
지금은 테스트를 위해 홈페이지에 게시판에 Notice시 삽입해서 사용하고 있지요..
미리보기에서 확인해보실 수 있습니다.
스크립트 길이도 얼마되지 않으니 적당한 쓸때가 있을 듯 하네요..
주석 보시고 소스 분석 연습도 해보시는 것도 좋지요.
<SCRIPT LANGUAGE="JavaScript">
<!--
var help_text=new Array(); // 타이핑할 문자열을 배열로 지정하지요. 아래처럼 순서대로 넣습니다.
help_text[0]="대충 타이핑 스크립트 만들어 봤습니다."
help_text[1]="이름은 Neo Crazy Typing이라구 "
help_text[2]="지었지요.. 어디 쓸만한데 있으심"
help_text[3]="써 보시지요..."
var i=0, j, k=0; // 변수지정, 타이핑 카운트를 조절하기 위한 변수들이지요.
var helpID; // 타임아웃 시킬 아이디를 지정합니다. (마우스 오버시 타이핑을 멈추게 하려고 사용하지요
var tail="▒"; // 글자 뒤의 커서 역할을 하는 모양이지요
function help(){
el=document.all.typing; // 표시할 엘리먼트를 지정합니다. (typing이 id지요)
if(help_text[k].length+r>=i) // 문자열의 길이에 적당한 숫자를 더해서 i값과 비교
{
if(i<r){ // 초기 몇번 커서의 깜박임을 주는 효과지요
if(el.innerText==tail) // 아래 부분이 깜박이는 부분..
el.innerText=" ";
else
el.innerText=tail;
helpID=setTimeout("help()",time2); // 함수를 다시 호출합니다.
j=help_text[k].length+r; // 현재 했던것을 다시 반복하기위해 필요하지요
}
else{
el.innerText=help_text[k].substring(0,i-r)+tail; // 깜박임을 끝내고 실지 글을 씁니다.
helpID=setTimeout("help()",time1); // 역시 자신을 다시 호출하지요.
}
i++;
}
else // 아래부분은 윗 함수의 역실행으로 보시면 됩니다.
{
if(help_text[k].length<j){
if(el.innerText==help_text[k])
el.innerText=help_text[k]+tail;
else
el.innerText=help_text[k];
helpID=setTimeout("help()",time2);
}
else{
el.innerText=help_text[k].substring(0,j)+tail;
helpID=setTimeout("help()",time1);
}
if(j==0){ // 한 사이클이 실행되면
i=0;r=rnd(30);time1=rnd(50); time2=rnd(200); // 타이핑 속도나 지연시간을 랜덤하게 다시 설정하지요
if(help_text.length-1>k) // 다음 문자열을 불러옵니다.
k++;
else
k=0;
}
j--;
}
}
function rnd(n) { return Math.floor(Math.random()*n)+1; } // 랜덤 수를 뽑아오는 게지요
var time1=rnd(50), time2=rnd(200), r=rnd(30); // 초기값을 가져옵니다.
//-->
</SCRIPT>
<body onload="help()">
<span id=typing onMouseout="help()" onMouseOver="clearTimeout(helpID)"></span>
음.. 미리보기는 http://neom.new21.net/zboard/zboard.php?id=qna 요기서 보시면 되구요..
가끔가다 시간 나면 소스 하나씩 스터디 중간중간 만들어 올리도록 하지요
댓글 2
-
("メ)....inRain
2002.04.22 17:56
-
Legend
2002.04.22 21:17
밑에 글을 미처 못 봤습니다.
네.. 그렇게 하세요..
제목 | 글쓴이 | 날짜 |
---|---|---|
오늘 시험문제인 카드맞추기 게임..^^ [12] | {동준짱} | 2002.05.18 |
테이블 정렬. 상하로 딱 가운데에 맞춰지지 않을때... [2] | :: N.styLE :: | 2002.05.18 |
DHTML의 시작 - Form에 대해 (3) - Button, Select 엘리먼트 [1] | Legend | 2002.05.16 |
ActiveX control... [4] | ☆봄비ㆀ | 2002.05.11 |
iframe태그.. HTML문서안에 또하나의 HTML문서.. [9] | 신종은 | 2002.05.09 |
DHTML의 시작 - Form 예제 (폼처리 HTML) | Legend | 2002.05.09 |
하이텔에서 가져오는 서울특별시와 광역시 날씨 [3] | 김희섭 | 2002.04.30 |
배경음악과 동영상 삽입 <embed> [7] | 제이지라 | 2002.04.26 |
DHTML의 시작 - Typing 스크립트 (예제) [2] | Legend | 2002.04.19 |
DHTML의 시작 - Form에 대해 (2) - input 엘리먼트 [5] | Legend | 2002.04.18 |
DHTML의 시작 - Form에 대해 (1) [2] | Legend | 2002.04.14 |
DHTML의 시작 - CSS와 객체 관계 [2] | Legend | 2002.04.12 |
이미지에 DHTML로 테두리를 만들어보자..포토샵 저리가라~~ [4] | ZipShin | 2002.04.11 |
DHTML의 시작 - HTML 구조 및 자바스크립트 객체지정법 [4] | Legend | 2002.04.11 |
투명한 아이프레임 [15] | 파야 | 2002.04.04 |
점선테이블..만들기 [6] | 각설탕 | 2002.03.31 |
엔지오식 레이어 메뉴 구성하기 (허접) [3] | 정영순 | 2002.03.28 |
유군 스타일 웹사이트 제작법 [15] | 유군-_-)/ | 2002.03.20 |
스크롤바 색상을 이쁜것만 모와요 [6] | ZipShin | 2002.03.16 |
인코딩 정보 일본어, 중국어, 스페인어 [3] | 탐그루 | 2002.03.16 |
저기 아래에 이 강의좀 퍼갈 수 있는지에 대해서 문의 드렸는데..
답변이 없어서 일단 강의좀 퍼 갔는데 괜찮을까요;;;
물론 님 홈페이지의 출처는 남겼습니다.
ps. 아 그리고 님 사이트의 iframe 의 사이즈 자동변환 팁 정말 유용하게 써먹고 있습니다. 감사 -ㅅ-)/