Hi, this is to request your support on a problem I have with nice menus using IE 6. When I go over the menu items, the options are displayed with an overflow (see attached picture, overflow highlighted red). Attached also you will find the CSS files I'm using and here you have the content of nice_menus.js

// $Id: nice_menus.js,v 1.16 2008/08/04 23:45:22 add1sun Exp $

// We need to do some browser sniffing to weed out IE 6 only
// because only IE6 needs this hover hack.
if (document.all && !window.opera && (navigator.appVersion.search("MSIE 6.0") != -1) && $.browser.msie) {
function IEHoverPseudo() {
$("ul.nice-menu li.menuparent").hover(function(){
$(this).addClass("over").find("> ul").show().addShim();
},function(){
$(this).removeClass("over").find("> ul").removeShim().hide();
}
);
// Add a hover class to all li for CSS styling. Silly naming is done
// so we don't break CSS compatibility for .over class already in use
// and due to the fact that IE6 doesn't understand multiple selectors.
$("ul.nice-menu li").hover(function(){
$(this).addClass("ie-over");
},function(){
$(this).removeClass("ie-over");
}
);
}

// This is the jquery method of adding a function
// to the BODY onload event. (See jquery.com)
$(document).ready(function(){ IEHoverPseudo() });
}

$.fn.addShim = function() {
return this.each(function(){
if(document.all && $("select").size() > 0) {
var ifShim = document.createElement('iframe');
ifShim.src = "javascript:false";
ifShim.style.width=$(this).width()+1+"px";
ifShim.style.height=$(this).find("> li").size()*23+20+"px";
ifShim.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";
ifShim.style.zIndex="0";
$(this).prepend(ifShim);
$(this).css("zIndex","99");
}
});
};

$.fn.removeShim = function() {
return this.each(function(){
if (document.all) $("iframe", this).remove();
});
};

Thanks in advance for your help

Comments

DanielB-dupe’s picture

Status: Active » Closed (fixed)