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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<style type="text/css">
#contener-menu { position: relative; }
#menu1 { display: block; width: 100px; height: 30px; background: black; color: white; float: left; }
#sous-menu1 { display: none; width: 100px; height: 100px; background: red; position: relative; }
#menu2 { display: block; width: 100px; height: 30px; background: black; color: white; float: left; }
#sous-menu2 { display: none; width: 100px; height: 100px; background: red; position: relative; }
</style>
</head>
<body>
<div id="contener-menu">
<ul id="menu1">
<li>Menu1
<ul id="sous-menu1">
<li>sous-menu1</li>
</ul>
</li>
</ul>
<ul id="menu2">
<li>Menu2
<ul id="sous-menu2">
<li>sous-menu2</li>
</ul>
</li>
</ul>
</div>
<script type="text/javascript">
function sousMenu()
{
this.menus = null ;
this.elMenu = null ;
this.elSsMenuOpen = null ;
this.elSsMenuClose = null ;
this.timer = null ;
this.timeOpen = 200 ;
this.timeClose = 10 ;
}
sousMenu.prototype.configuration = function()
{
var object = this ;
for(var i = 0; i < this.menus.length; i++)
{
this.elMenu = document.getElementById(this.menus[i]);
this.elMenu.dataOpen = {
objectOpen:this,
ssMenuOpen:"sous-"+this.menus[i],
fnOpen: function() { object.openMenu(this.ssMenuOpen); }
}
this.elMenu.onmouseover = function(){ this.dataOpen.fnOpen(); } ;
this.elMenu.dataClose = {
objectClose:this,
ssMenuClose:"sous-"+this.menus[i],
fnClose: function() { object.closeMenu(this.ssMenuClose); }
}
this.elMenu.onmouseout = function(){ this.dataClose.fnClose(); } ;
}
}
sousMenu.prototype.openMenu = function(ssMenu)
{
var object = this ;
clearTimeout(this.timer) ;
this.timer = null ;
this.elSsMenuOpen = ssMenu ;
this.timer = setTimeout(function(){ object.goOpenMenu() }, this.timeOpen) ;
}
sousMenu.prototype.goOpenMenu = function()
{
document.getElementById(this.elSsMenuOpen).style.display = "block" ;
}
sousMenu.prototype.closeMenu = function(ssMenu)
{
var object = this ;
clearTimeout(this.timer) ;
this.timer = null ;
this.elSsMenuClose = ssMenu ;
this.timer = setTimeout(function(){ object.goCloseMenu() }, this.timeClose) ;
}
sousMenu.prototype.goCloseMenu = function()
{
document.getElementById(this.elSsMenuClose).style.display = "none" ;
}
var menu = new sousMenu() ;
menu.menus = Array('menu1', 'menu2') ;
menu.configuration() ;
</script>
</body>
</html> |
Partager