아래 태그를 모두 복사해서 태그연습장에서 실행해보세요.
:: 클릭의 경우와 마우스오버의 경우로 만들어졌다.
:: 위 소스는 Thomas Brattli의 사이트에서 발췌하였다.
<html>
<head>
<title>Cross-browser Dynamic HTML Scripts - LeftTopMenu</title>
<style type="text/css">
#divMenu0{position:absolute; top:0; left:30; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu1{position:absolute; top:200; left:30; width:310; height:100; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu2{position:absolute; top:0; left:150; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu3{position:absolute; top:250; left:30; width:470; height:100; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
</style>
<script type="text/javascript" language="JavaScript">
/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
return this
}
bw=new checkBrowser()
/* Set the variables below.
If you look at the init function you can see that you can also set
these variables different for each menu!
*/
//Do you want the menus to move with the page if the user scroll the page?
var MoveOnScroll=true
//TOPMENU VARIABLES ***********************************************
//How many pixels should it move every step?
var tMove=10;
//At what speed (in milliseconds, lower value is more speed)
var tSpeed=40
//How much of the menu should be visible in the in state?
var tShow=20
//LEFTMENU VARIABLES ***********************************************
//How many pixels should it move every step?
var lMove=10;
//At what speed (in milliseconds, lower value is more speed)
var lSpeed=40
//How much of the menu should be visible in the in state?
var lShow=60
/********************************************************************
Contructs the menuobjects -Object functions
*********************************************************************/
function makeMenu(obj,nest,show,move,speed,topleft){
nest=(!nest) ? '':'document.'+nest+'.'
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
this.x=(bw.ns4 || bw.ns5)? this.css.left:this.el.offsetLeft;
this.y=(bw.ns4 || bw.ns5)? this.css.top:this.el.offsetTop;
this.state=1; this.go=0; this.mup=b_mup; this.show=show; this.mdown=b_mdown;
this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
this.width=bw.ns4?this.css.document.width:this.el.offsetWidth
this.top=this.y; this.mout=b_mout; this.min=b_min;
this.topleft=topleft
this.moveIt=b_moveIt; this.move=move; this.speed=speed
this.obj = obj + "Object"; eval(this.obj + "=this")
}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
//Menu up
function b_mup(){
if(this.y>-this.height+this.show){
this.go=1; this.moveIt(this.x,this.y-this.move)
setTimeout(this.obj+".mup()",this.speed)
}else{this.go=0; this.state=1}
}
//Menu down
function b_mdown(){
if(this.y<eval(scrolled)){
this.go=1; this.moveIt(this.x,this.y+this.move)
setTimeout(this.obj+".mdown()",this.speed)
}else{this.go=0; this.state=0}
}
//Menu in
function b_min(){
if(this.x>-this.width+this.show){
this.go=1; this.moveIt(this.x-this.move,this.y)
setTimeout(this.obj+".min()",this.speed)
}else{this.go=0; this.state=1}
}
//Menu out
function b_mout(){
if(this.x<0){
this.go=1; this.moveIt(this.x+this.move,this.y)
setTimeout(this.obj+".mout()",this.speed)
}else{this.go=0; this.state=0}
}
/********************************************************************************
Deciding what way to move the menu (this is called onmouseover, onmouseout or onclick)
********************************************************************************/
function moveMenu(num){
if(!oMenu[num].go){
if(oMenu[num].topleft=="top"){
if(!oMenu[num].state)oMenu[num].mup()
else oMenu[num].mdown()
}else{
if(!oMenu[num].state)oMenu[num].min()
else oMenu[num].mout()
}
}
}
/********************************************************************************
Checking if the page is scrolled, if it is move the menu after
********************************************************************************/
function checkScrolled(){
for(i=0;i<oMenu.length;i++){
if(!oMenu[i].go){
if(oMenu[i].topleft=="top"){
y=!oMenu[i].state?eval(scrolled):eval(scrolled)-oMenu[i].height+oMenu[i].show
oMenu[i].moveIt(oMenu[i].x,y)
}else oMenu[i].moveIt(oMenu[i].x,eval(scrolled)+oMenu[i].top)
}
}
if(bw.ns4) setTimeout('checkScrolled()',40)
}
/********************************************************************************
Inits the page, makes the menu object, moves it to the right place,
show it
********************************************************************************/
function topMenuInit(){
oMenu=new Array()
//These used the default variables:
oMenu[0]=new makeMenu('divMenu0','',tShow,tMove,tSpeed,"top") //Topmenu
oMenu[1]=new makeMenu('divMenu1','',lShow,lMove,lSpeed,"left") //Leftmenu
//These uses other values
oMenu[2]=new makeMenu('divMenu2','',20,10,20,"top")
oMenu[3]=new makeMenu('divMenu3','',70,10,20,"left")
//You can add as many menus you want like the lines above.
scrolled=bw.ns4?"window.pageYOffset":"document.body.scrollTop"
//Placing and showing menus
for(i=0;i<oMenu.length;i++){
if(oMenu[i].topleft=="top") oMenu[i].moveIt(oMenu[i].x,-oMenu[i].height+oMenu[i].show)
else oMenu[i].moveIt(-oMenu[i].width+oMenu[i].show,oMenu[i].y)
oMenu[i].css.visibility='visible'
}
if(MoveOnScroll) bw.ns4?checkScrolled():window.onscroll=checkScrolled;
}
//Initing menu on pageload
onload=topMenuInit;
</script>
</HEAD>
<BODY bgcolor="f2f2f2" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div id="divMenu0">
<!-- You can just replace this text with some cool images if you want -->
<a href="javascript://">Link1</a><br><br>
<a href="javascript://">Link2</a><br><br>
<a href="javascript://">Link3</a><br><br>
<a href="javascript://">Link4</a><br><br>
<a href="#" onclick="moveMenu(0); return false">MENU</a>
</div>
<div id="divMenu1">
<!-- You can just replace this text with some cool images if you want -->
<a href="javascript://">Link1</a> -
<a href="javascript://">Link2</a> -
<a href="javascript://">Link3</a> -
<a href="javascript://">Link4</a> -
<a href="#" onclick="moveMenu(1); return false">MENU</a>
</div>
<div id="divMenu2">
<!-- You can just replace this text with some cool images if you want -->
This is onclick <br>like the first one <br>
<a href="#" onclick="moveMenu(2); return false">MENU 3</a>
</div>
<div id="divMenu3">
<!-- You can just replace this text with some cool images if you want -->
This is onmouseover, the first one is onclick -
<a href="#" onmouseover="moveMenu(3)">MENU</a>
</div>
</BODY>
</HTML>
:: 클릭의 경우와 마우스오버의 경우로 만들어졌다.
:: 위 소스는 Thomas Brattli의 사이트에서 발췌하였다.
<html>
<head>
<title>Cross-browser Dynamic HTML Scripts - LeftTopMenu</title>
<style type="text/css">
#divMenu0{position:absolute; top:0; left:30; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu1{position:absolute; top:200; left:30; width:310; height:100; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu2{position:absolute; top:0; left:150; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
#divMenu3{position:absolute; top:250; left:30; width:470; height:100; visibility:hidden; font-family:arial,helvetica; font-size:18px; font-weight:bold}
</style>
<script type="text/javascript" language="JavaScript">
/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
return this
}
bw=new checkBrowser()
/* Set the variables below.
If you look at the init function you can see that you can also set
these variables different for each menu!
*/
//Do you want the menus to move with the page if the user scroll the page?
var MoveOnScroll=true
//TOPMENU VARIABLES ***********************************************
//How many pixels should it move every step?
var tMove=10;
//At what speed (in milliseconds, lower value is more speed)
var tSpeed=40
//How much of the menu should be visible in the in state?
var tShow=20
//LEFTMENU VARIABLES ***********************************************
//How many pixels should it move every step?
var lMove=10;
//At what speed (in milliseconds, lower value is more speed)
var lSpeed=40
//How much of the menu should be visible in the in state?
var lShow=60
/********************************************************************
Contructs the menuobjects -Object functions
*********************************************************************/
function makeMenu(obj,nest,show,move,speed,topleft){
nest=(!nest) ? '':'document.'+nest+'.'
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
this.x=(bw.ns4 || bw.ns5)? this.css.left:this.el.offsetLeft;
this.y=(bw.ns4 || bw.ns5)? this.css.top:this.el.offsetTop;
this.state=1; this.go=0; this.mup=b_mup; this.show=show; this.mdown=b_mdown;
this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
this.width=bw.ns4?this.css.document.width:this.el.offsetWidth
this.top=this.y; this.mout=b_mout; this.min=b_min;
this.topleft=topleft
this.moveIt=b_moveIt; this.move=move; this.speed=speed
this.obj = obj + "Object"; eval(this.obj + "=this")
}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
//Menu up
function b_mup(){
if(this.y>-this.height+this.show){
this.go=1; this.moveIt(this.x,this.y-this.move)
setTimeout(this.obj+".mup()",this.speed)
}else{this.go=0; this.state=1}
}
//Menu down
function b_mdown(){
if(this.y<eval(scrolled)){
this.go=1; this.moveIt(this.x,this.y+this.move)
setTimeout(this.obj+".mdown()",this.speed)
}else{this.go=0; this.state=0}
}
//Menu in
function b_min(){
if(this.x>-this.width+this.show){
this.go=1; this.moveIt(this.x-this.move,this.y)
setTimeout(this.obj+".min()",this.speed)
}else{this.go=0; this.state=1}
}
//Menu out
function b_mout(){
if(this.x<0){
this.go=1; this.moveIt(this.x+this.move,this.y)
setTimeout(this.obj+".mout()",this.speed)
}else{this.go=0; this.state=0}
}
/********************************************************************************
Deciding what way to move the menu (this is called onmouseover, onmouseout or onclick)
********************************************************************************/
function moveMenu(num){
if(!oMenu[num].go){
if(oMenu[num].topleft=="top"){
if(!oMenu[num].state)oMenu[num].mup()
else oMenu[num].mdown()
}else{
if(!oMenu[num].state)oMenu[num].min()
else oMenu[num].mout()
}
}
}
/********************************************************************************
Checking if the page is scrolled, if it is move the menu after
********************************************************************************/
function checkScrolled(){
for(i=0;i<oMenu.length;i++){
if(!oMenu[i].go){
if(oMenu[i].topleft=="top"){
y=!oMenu[i].state?eval(scrolled):eval(scrolled)-oMenu[i].height+oMenu[i].show
oMenu[i].moveIt(oMenu[i].x,y)
}else oMenu[i].moveIt(oMenu[i].x,eval(scrolled)+oMenu[i].top)
}
}
if(bw.ns4) setTimeout('checkScrolled()',40)
}
/********************************************************************************
Inits the page, makes the menu object, moves it to the right place,
show it
********************************************************************************/
function topMenuInit(){
oMenu=new Array()
//These used the default variables:
oMenu[0]=new makeMenu('divMenu0','',tShow,tMove,tSpeed,"top") //Topmenu
oMenu[1]=new makeMenu('divMenu1','',lShow,lMove,lSpeed,"left") //Leftmenu
//These uses other values
oMenu[2]=new makeMenu('divMenu2','',20,10,20,"top")
oMenu[3]=new makeMenu('divMenu3','',70,10,20,"left")
//You can add as many menus you want like the lines above.
scrolled=bw.ns4?"window.pageYOffset":"document.body.scrollTop"
//Placing and showing menus
for(i=0;i<oMenu.length;i++){
if(oMenu[i].topleft=="top") oMenu[i].moveIt(oMenu[i].x,-oMenu[i].height+oMenu[i].show)
else oMenu[i].moveIt(-oMenu[i].width+oMenu[i].show,oMenu[i].y)
oMenu[i].css.visibility='visible'
}
if(MoveOnScroll) bw.ns4?checkScrolled():window.onscroll=checkScrolled;
}
//Initing menu on pageload
onload=topMenuInit;
</script>
</HEAD>
<BODY bgcolor="f2f2f2" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div id="divMenu0">
<!-- You can just replace this text with some cool images if you want -->
<a href="javascript://">Link1</a><br><br>
<a href="javascript://">Link2</a><br><br>
<a href="javascript://">Link3</a><br><br>
<a href="javascript://">Link4</a><br><br>
<a href="#" onclick="moveMenu(0); return false">MENU</a>
</div>
<div id="divMenu1">
<!-- You can just replace this text with some cool images if you want -->
<a href="javascript://">Link1</a> -
<a href="javascript://">Link2</a> -
<a href="javascript://">Link3</a> -
<a href="javascript://">Link4</a> -
<a href="#" onclick="moveMenu(1); return false">MENU</a>
</div>
<div id="divMenu2">
<!-- You can just replace this text with some cool images if you want -->
This is onclick <br>like the first one <br>
<a href="#" onclick="moveMenu(2); return false">MENU 3</a>
</div>
<div id="divMenu3">
<!-- You can just replace this text with some cool images if you want -->
This is onmouseover, the first one is onclick -
<a href="#" onmouseover="moveMenu(3)">MENU</a>
</div>
</BODY>
</HTML>
반응형
'인터넷정보' 카테고리의 다른 글
음악파일을 랜덤하게 듣기 (0) | 2007.10.17 |
---|---|
시작 날짜를 알려주는 소스 (0) | 2007.10.17 |
시작 날짜를 알려주는 소스 (0) | 2007.10.17 |
클릭하면 아래로 스스륵 나타나는 공지창 (0) | 2007.10.17 |
클릭하면 아래로 스스륵 나타나는 공지창 (0) | 2007.10.17 |
메뉴타입만들기 (0) | 2007.10.17 |
마우스를 따라다니는 글이나 이미지 (0) | 2007.10.17 |
마우스를 따라다니는 글이나 이미지 (0) | 2007.10.17 |
현재의 년,월,일,시간 나타내기 (0) | 2007.10.17 |
현재의 년,월,일,시간 나타내기 (0) | 2007.10.17 |