I don't have IE7, but maybe try this now. It doesnβt fix, but shows content when it needs to show ... Well, unsure of IE7, but had a similar problem with IE9.
$(document).ready(function(){ $("#contents").hover( function() { $("#nav-buttons").fadeToggle("slow").queue(function() { $(this).fadeIn("slow"); $(this).dequeue(); }); }); });
It is also possible to get rid of "display: none;" because it acts oddly ... or do you need it?
edit: I found that it can only work to re-add fadeToggle to the queue function. Ah, you want something to show when you were aiming for something else. I get it now. Maybe just add another fadeToggle to the queue or disappear when the mouse is no longer above the div.
edit2: seeing how you want to appear and disappear, maybe this:
$(document).ready(function(){ $("#contents").mouseenter( function() { $("#nav-buttons").fadeIn("slow"); }).mouseleave( function() { $("#nav-buttons").fadeOut("slow"); }); });
If you want to switch to fadeToggle, I would suggest deleting the display: no, when you call it, or it will continue to exit the screen. Then you can return it when you leave.
Edit3: follow the try link:
Troubleshoot Internet Explorer 7 using jQuery
$(document).ready(function(){ $("#contents") .mouseenter( function() { $("#nav-buttons").delay(200).fadeIn(function(){ $(this).css("filter",''); }); }) .mouseleave( function() { $("#nav-buttons").delay(200).fadeOut(function(){ $(this).css("filter",''); }); }); });
If that doesn't work, you probably have to use direct css.