Hi,
Ive tried alot of solutions but nothing worked for my menu
It still dont preloads in IE
Well you haven't tried the right ones then lol 
2 things you can do. The first is not to make repeating images so small. They should be at least 5px when repeating a large area or a large number of items. The redraw time is much slower than the load time when you use 1px on any dimension.
The second thing you can do which will cure the problem (even if you stil use those small pixel gifs) is to change the way you do the rollover. The delay in the rollover comes from loading (and drawing) the image on rollover. So therefore you put the over state of the image into the parent already so that it gets drawn on page load. The parent would be your list item.
Then you put the normal state of the image in the anchor which covers the over state that has already been drawn. You now have 2 images stacked on top of each other and both drawn and pre-loaded.
All you do is make the background of the anchor transparent on hover and the image underneath shows through. No more loading or redrawing is necessary as they are already there.
Heres the code to do that.
Code:
#topnav ul#nav { /* padding-top: 0; */
font: 13px verdana, arial, sans-serif;
list-style-type: none;
padding-left: 0px;
padding-bottom: 27px;
margin: 0;
line-height: 19px;
background: url(http://www.kvn-alania.ru/images/menuover.gif) repeat-x;
/* over state of rollover */
}
#topnav #nav a {
float: left;
display: block;
color: #F4F4F4; /*#5D5D5D;*/
text-decoration: none;
padding: 4px 10px;
background: url(http://www.kvn-alania.ru/images/menu.gif) repeat-x;
/* normal state of rollover */
}
#topnav #nav a:hover {
/*background: #7FA3EC;*/
color: #FFFFFF; /*585858;*/
background:transparent;
/* hide top image*/
}
You will need to make the necessary changes to your active state etc but you should get the picture.
Paul
Bookmarks