Annys
Gebruiker
- Lid geworden
- 28 okt 2008
- Berichten
- 52
Hallo,
Ik heb een website gemaakt in Dreamweaver en nu blijkt dat submenu's (dus knoppen die uitklappen als je over andere knoppen heen gaat) van de vertical spry menu bar wegvallen in Internet Explorer.
Wie kan mij helpen dit op te lossen???
HTML:
CSS:
JS van het menu:
Ik hoop dat iemand mij kan helpen want ik kom er niet uit!
Groet,
Annys
Ik heb een website gemaakt in Dreamweaver en nu blijkt dat submenu's (dus knoppen die uitklappen als je over andere knoppen heen gaat) van de vertical spry menu bar wegvallen in Internet Explorer.
Wie kan mij helpen dit op te lossen???
HTML:
HTML:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>index</title>
<link href="CSS/CSS.css" rel="stylesheet" type="text/css" />
<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="container">
<div id="header" onclick="location.href='index.html'" style="cursor:pointer"></div>
<div id="zoekbalk"></div>
<div id="menu">
<ul id="Menu" class="MenuBarVertical">
<li><a href="index.html">Home</a></li>
<li><a href="OvertClick.html">Over tClick</a></li>
<li><a class="MenuBarItemSubmenu" href="Pakketten.html">Pakketten</a>
<ul>
<li><a href="tClick-Labanalyse-Labstatistiek.html">Laboratorium</a></li>
<li><a href="tClick-Orders-Status.html">Planning</a></li>
<li><a href="tClick-Offerte-Facturatie.html">Financieel</a></li>
<li><a href="tClick-Management-Productie.html">Management</a></li>
</ul>
</li>
<li><a href="Contact.html">Contact</a></li>
</ul></div>
<div id="content">
<p class="style2"> Welkom </p>
<p>Dit is de vernieuwde website van tClick. Het nieuwe logo is aangepast op de software.</p>
<p>In het menu onder de knop Pakketten vindt u de verschillende onderdelen van de software met bijbehorende uitleg. Ieder onderdeel van tClick heeft nu een duidelijk icoon met een eigen kleur. Dit maakt het startmenu nog overzichtelijker.</p>
<p>Heeft u vragen of opmerkingen over de inhoud van deze website? Vul dan het contactformulier in!</p>
<p class="style3">Schrijf je nu in voor de nieuwsbrief en win een iPod Shuffle!</p>
<form action="" method="get">
<p align="left">Naam::<br>
<input name="Bedrijf" type="text" id="Bedrijf" size="30"></p>
<p align="left">Bedrijf:<br>
<input name="E-mail" type="text" id="E-mail" size="30"></p>
<p align="left">E-mail:<br>
<input name="E-mail" type="text" id="E-mail" size="30"></p>
<p align="left">
<label>
<input type="image" name="imageField" id="imageField" src="IMAGES/Submit.png" />
</label>
</p>
</form>
<p> <img src="IMAGES/iPodShuffle.png" style="float:left; padding: 10px;" /> </p>
</div>
<div id="footer"> Jonker Elektrotechnische Bedrijfsautomatiserings b.v. Mors 19 7151MX Eibergen, Tel.: 0545 463000, e-mail:Verkoop@Jonker.nl </div>
</div>
</div>
<script type="text/javascript">
<!--
var MenuBar1 = new Spry.Widget.MenuBar("Menu", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
//-->
</script>
</body>
</html>
CSS:
Code:
@charset "UTF-8";
/* CSS Document */
body{
background-image:url(CSSIMAGES/BG1.png);
background-repeat:repeat-x;
background-color:#000000;
font-family:"Century Gothic", "arial";
font-style: normal;
font-size: 10px;
color: #FFFFFF;
}
a {
font-size: 10px;
color: #CCCCCC;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #CCCCCC;
}
a:hover {
text-decoration: none;
color: #666666;
}
a:active {
text-decoration: none;
}
#container{
width: 852px;
height: 720px;
margin: 0px auto;
}
#header{
background-image: url(CSSIMAGES/header_tClick.png);
background-repeat:no-repeat;
height: 142px;
width: 852px;
}
#zoekbalk{
height: 20px;
width: 100%;
clear: both;
}
#tussenruimte{
width: 100%;
height: 10px;
clear: both;
float: right;
font-weight: bold;
text-align: center;
}
#menu{
position: relative;
padding-right: 5px;
width: 98px;
float: left;
clear: left;
float: left;
}
#content{
position: relative;
width: 730px;
height: 500px;
float: right;
padding: 5px;
border: solid 3px;
border-color: #FFDEAD;
overflow: auto;
}
#footer{
position: relative;
width: 740px;
height: 20px;
top: 10px;
background-color: #838383;
border: solid 3px;
border-color: #FFDEAD;
clear: both;
float: right;
font-weight: bold;
text-align: center;
overflow: auto;
}
.style1 {font-size: 10px;
font-family:"Century Gothic";
}
.style2 {font-size: 14px;
font-family:"Century Gothic";
font-weight: bold;
}
.style3 {font-size: 12px;
font-family:"Century Gothic";
font-weight: bold;
}
JS van het menu:
Code:
var Spry;
if(!Spry)
{
Spry = {};
}
if(!Spry.Widget)
{
Spry.Widget = {};
}
// Constructor for Menu Bar
// element should be an ID of an unordered list (<ul> tag)
// preloadImage1 and preloadImage2 are images for the rollover state of a menu
Spry.Widget.MenuBar = function(element, opts)
{
this.init(element, opts);
};
Spry.Widget.MenuBar.prototype.init = function(element, opts)
{
this.element = this.getElement(element);
// represents the current (sub)menu we are operating on
this.currMenu = null;
var isie = (typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE');
if(typeof document.getElementById == 'undefined' || (navigator.vendor == 'Apple Computer, Inc.' && typeof window.XMLHttpRequest == 'undefined') || (isie && typeof document.uniqueID == 'undefined'))
{
// bail on older unsupported browsers
return;
}
// load hover images now
if(opts)
{
for(var k in opts)
{
var rollover = new Image;
rollover.src = opts[k];
}
}
if(this.element)
{
this.currMenu = this.element;
var items = this.element.getElementsByTagName('li');
for(var i=0; i<items.length; i++)
{
this.initialize(items[i], element, isie);
if(isie)
{
this.addClassName(items[i], "MenuBarItemIE");
items[i].style.position = "static";
}
}
if(isie)
{
if(this.hasClassName(this.element, "MenuBarVertical"))
{
this.element.style.position = "relative";
}
var linkitems = this.element.getElementsByTagName('a');
for(var i=0; i<linkitems.length; i++)
{
linkitems[i].style.position = "relative";
}
}
}
};
Spry.Widget.MenuBar.prototype.getElement = function(ele)
{
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
};
Spry.Widget.MenuBar.prototype.hasClassName = function(ele, className)
{
if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
{
return false;
}
return true;
};
Spry.Widget.MenuBar.prototype.addClassName = function(ele, className)
{
if (!ele || !className || this.hasClassName(ele, className))
return;
ele.className += (ele.className ? " " : "") + className;
};
Spry.Widget.MenuBar.prototype.removeClassName = function(ele, className)
{
if (!ele || !className || !this.hasClassName(ele, className))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
};
// addEventListener for Menu Bar
// attach an event to a tag without creating obtrusive HTML code
Spry.Widget.MenuBar.prototype.addEventListener = function(element, eventType, handler, capture)
{
try
{
if (element.addEventListener)
{
element.addEventListener(eventType, handler, capture);
}
else if (element.attachEvent)
{
element.attachEvent('on' + eventType, handler);
}
}
catch (e) {}
};
// createIframeLayer for Menu Bar
// creates an IFRAME underneath a menu so that it will show above form controls and ActiveX
Spry.Widget.MenuBar.prototype.createIframeLayer = function(menu)
{
var layer = document.createElement('iframe');
layer.tabIndex = '-1';
layer.src = 'javascript:false;';
menu.parentNode.appendChild(layer);
layer.style.left = menu.offsetLeft + 'px';
layer.style.top = menu.offsetTop + 'px';
layer.style.width = menu.offsetWidth + 'px';
layer.style.height = menu.offsetHeight + 'px';
};
// removeIframeLayer for Menu Bar
// removes an IFRAME underneath a menu to reveal any form controls and ActiveX
Spry.Widget.MenuBar.prototype.removeIframeLayer = function(menu)
{
var layers = menu.parentNode.getElementsByTagName('iframe');
while(layers.length > 0)
{
layers[0].parentNode.removeChild(layers[0]);
}
};
// clearMenus for Menu Bar
// root is the top level unordered list (<ul> tag)
Spry.Widget.MenuBar.prototype.clearMenus = function(root)
{
var menus = root.getElementsByTagName('ul');
for(var i=0; i<menus.length; i++)
{
this.hideSubmenu(menus[i]);
}
this.removeClassName(this.element, "MenuBarActive");
};
// bubbledTextEvent for Menu Bar
// identify bubbled up text events in Safari so we can ignore them
Spry.Widget.MenuBar.prototype.bubbledTextEvent = function()
{
return (navigator.vendor == 'Apple Computer, Inc.' && (event.target == event.relatedTarget.parentNode || (event.eventPhase == 3 && event.target.parentNode == event.relatedTarget)));
};
// showSubmenu for Menu Bar
// set the proper CSS class on this menu to show it
Spry.Widget.MenuBar.prototype.showSubmenu = function(menu)
{
if(this.currMenu)
{
this.clearMenus(this.currMenu);
this.currMenu = null;
}
if(menu)
{
this.addClassName(menu, "MenuBarSubmenuVisible");
if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
{
if(!this.hasClassName(this.element, "MenuBarHorizontal") || menu.parentNode.parentNode != this.element)
{
menu.style.top = menu.parentNode.offsetTop + 'px';
}
}
if(typeof document.uniqueID != "undefined")
{
this.createIframeLayer(menu);
}
}
this.addClassName(this.element, "MenuBarActive");
};
// hideSubmenu for Menu Bar
// remove the proper CSS class on this menu to hide it
Spry.Widget.MenuBar.prototype.hideSubmenu = function(menu)
{
if(menu)
{
this.removeClassName(menu, "MenuBarSubmenuVisible");
if(typeof document.all != 'undefined' && typeof window.opera == 'undefined' && navigator.vendor != 'KDE')
{
menu.style.top = '';
menu.style.left = '';
}
this.removeIframeLayer(menu);
}
};
// initialize for Menu Bar
// create event listeners for the Menu Bar widget so we can properly
// show and hide submenus
Spry.Widget.MenuBar.prototype.initialize = function(listitem, element, isie)
{
var opentime, closetime;
var link = listitem.getElementsByTagName('a')[0];
var submenus = listitem.getElementsByTagName('ul');
var menu = (submenus.length > 0 ? submenus[0] : null);
var hasSubMenu = false;
if(menu)
{
this.addClassName(link, "MenuBarItemSubmenu");
hasSubMenu = true;
}
if(!isie)
{
// define a simple function that comes standard in IE to determine
// if a node is within another node
listitem.contains = function(testNode)
{
// this refers to the list item
if(testNode == null)
{
return false;
}
if(testNode == this)
{
return true;
}
else
{
return this.contains(testNode.parentNode);
}
};
}
// need to save this for scope further down
var self = this;
this.addEventListener(listitem, 'mouseover', function(e)
{
if(self.bubbledTextEvent())
{
// ignore bubbled text events
return;
}
clearTimeout(closetime);
if(self.currMenu == listitem)
{
self.currMenu = null;
}
// show menu highlighting
self.addClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
if(menu && !self.hasClassName(menu, "MenuBarSubmenuVisible"))
{
opentime = window.setTimeout(function(){self.showSubmenu(menu);}, 250);
}
}, false);
this.addEventListener(listitem, 'mouseout', function(e)
{
if(self.bubbledTextEvent())
{
// ignore bubbled text events
return;
}
var related = (typeof e.relatedTarget != 'undefined' ? e.relatedTarget : e.toElement);
if(!listitem.contains(related))
{
clearTimeout(opentime);
self.currMenu = listitem;
// remove menu highlighting
self.removeClassName(link, hasSubMenu ? "MenuBarItemSubmenuHover" : "MenuBarItemHover");
if(menu)
{
closetime = window.setTimeout(function(){self.hideSubmenu(menu);}, 600);
}
}
}, false);
};
Ik hoop dat iemand mij kan helpen want ik kom er niet uit!
Groet,
Annys