카테고리 보관물: JavaScript

[JS] 스크롤메뉴

IE6 이상에서 DTD를 지정하여 사용할 경우 document.body 대신 document.documentElement를 사용해야 합니다.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
와 같이 dtd를 지정한 경우에 document.body를 인식하지 못하기 때문에 수정한 소스입니다.

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
<!--
var min = 89;      // 레이어 top 초기 값 (레이어 top 값과 일치시킴)
var max = 0;
var moving_speed = 10  // 속도(낮을 수록 빠름)
var moving_amount = 10  // 움직임 (낮을 수록 부드러움)
var action_time = 500   // 반응시간 (*/1000 초 후에 반응)
function left_move_init() {
    itm = document.getElementById("quickmenu");
    itm.set_pos = function(y){itm.style.top=y+"px";};
    itm.y = min;
    itm.set_pos(itm.y);
    max = document.documentElement.scrollHeight - itm.scrollHeight - min;
    setTimeout(left_move_func, moving_amount);
}
function left_move_func() {
    itm = document.getElementById("quickmenu");
    tmp = document.documentElement.scrollTop + min;
    itm.y += Math.floor((tmp-itm.y)/moving_speed);
    if( itm.y>max ) itm.y = max;
    if( itm.y<min ) itm.y = min;
    itm.set_pos(itm.y);
    setTimeout(left_move_func, moving_amount);
}
setTimeout(left_move_init, action_time);
//-->

[JS] 오늘 하루 열지 않음

팝업창 스크립트

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--
//*****    쿠키저장 지정시간동안 나오지 않음
function notice_setCookie( name, value, expiredays )
{
    var todayDate = new Date();
    todayDate.setTime(todayDate.getTime()+1000*60*60*12*expiredays);
    document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
}
 
//*****    쿠키저장하면서 닫기
function notice_closeWin()
{
    notice_setCookie( "aniv", "done" , 1); // 1=하룻동안 공지창 열지 않음
    top.close();
}
 
// - JavaScript - -->

메인 윈도우 스크립트

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
<!--
function notice_getCookie( name )
{
    var nameOfCookie = name + "=";
    var x = 0;
    while ( x <= document.cookie.length )
    {
        var y = (x+nameOfCookie.length);
        if ( document.cookie.substring( x, y ) == nameOfCookie ) {
            if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
            endOfCookie = document.cookie.length;
            return unescape( document.cookie.substring( y, endOfCookie ) );
        }
        x = document.cookie.indexOf( " ", x ) + 1;
        if ( x == 0 )
        break;
    }
    return "";
}
 
if ( notice_getCookie( "aniv" ) != "done" )
{
    window.open("/popups/060926.html","popups","width=450,height=700,scrollbars=no")
}
//-->

[JS] 스크롤메뉴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var min = 350; // 레이어 top 초기 값 (레이어 top 값과 일치시킴)
var max = 0;
var moving_speed = 10  // 속도(낮을 수록 빠름)
var moving_amount = 10  // 움직임 (낮을 수록 부드러움)
var action_time = 500   // 반응시간 (*/1000 초 후에 반응)
function left_move_init() {
    itm = document.getElementById("topButton");
    //itm.set_pos = function(y){itm.style.top=y;}; 파폭에서 안됨
    itm.set_pos = function(y){itm.style.top=y+"px";};
    itm.y = min;
    itm.set_pos(itm.y);
    max = document.body.scrollHeight - itm.scrollHeight - min;
    setTimeout("left_move_func()", moving_amount);
}
function left_move_func() {
    tmp = document.body.scrollTop + min;
    itm.y += Math.floor((tmp-itm.y)/moving_speed);
    if( itm.y>max ) itm.y = max;
    if( itm.y<min ) itm.y = min;
    itm.set_pos(itm.y);
    setTimeout("left_move_func()", moving_amount);
}
setTimeout("left_move_init()", action_time);