тормозит css меню в ie
есть выпадающее css меню.
ie 6.0 не поддерживает селектор :hover, следовательно подменю не выезжает. проблему решил с помощью такого скрипта : <script type="text/javascript"> jsHover = function() { var hEls = document.getElementById("menu").getElementsByTagNa me("LI"); for (var i=0, len=hEls.length; i<len; i++) { hEls[i].onmouseover=function() { this.className+=" jshover"; } hEls[i].onmouseout=function() { this.className=this.className.replace(" jshover", ""); } } } if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover); </script> во всех бразуерах меню работает шустро, но в ие подтормаживает. в чем может быть проблема? заранее спасибо |
покажите работающий пример.
делал недавно такое же меню. все работало хорошо |
а каким образом я покажу? он у меня пока на локалхосте.
|
Цитата:
Какая версия ИЕ?! |
версия ие 6.0
хтмл код : <!--меню навигации--> <div id="menu"> <ul> <li><a href="index.php" id="current">Главная</a></li> <li><a href="projects.php" >Проекты</a> <ul> <li><a href="#">Пункт 1</a></li> <li><a href="#">Пункт 2</a></li> <li><a href="#">Пункт 3</a></li> <li><a href="#">Пункт 4</a></li> </ul> </li> <li><a href="technology.php">Технология</a> <ul> <li><a href="#">Пункт 1</a></li> <li><a href="#">Пункт 2</a></li> <li><a href="#">Пункт 3</a></li> <li><a href="#">Пункт 4</a></li> </ul> </li> <li><a href="contacts.php">Контакты</a></li> </li> <li><a href="about.php">О нас</a></li> </ul> </div> CSS код меню навигации : #menu{ border:none; border:0px; margin:0px; padding:0px; font-family:verdana,geneva,arial,helvetica,sans-serif; font-size:14px; font-weight:bold; color:8e8e8e; } #menu ul{ background:url(images/menu-bg.gif) top left repeat-x; height:43px; list-style:none; margin:0; padding:0; } #menu li{ float:left; } #menu li a{ color:#3E7999; display:block; font-weight:bold; line-height:43px; padding:0px 25px; text-align:center; text-decoration:none; } #menu li a:hover{ color:#000000; text-decoration:none; } #menu li ul{ background:#e0e0e0; border-left:2px solid #0079B2; border-right:2px solid #0079B2; border-bottom:2px solid #0079B2; display:none; height:auto; filter:alpha(opacity=95); opacity:0.95; position:absolute; width:150px; z-index:200; /*top:1em; /*left:0;*/ } #menu li:hover ul, #menu li.jshover ul{ display:block; visibility:visible; } #menu li li{ display:block; float:none; width:150px; } #menu li ul a{ display:block; font-size:12px; font-style:normal; padding:0px 10px 0px 15px; text-align:left; visibility:visible; width:125px; } #menu li ul a:hover{ background:#A1B7C4; color:#000000; opacity:1.0; filter:alpha(opacity=100); visibility:visible; } #menu p{ clear:left; } #menu #current{ background:url(images/current-bg.gif) top left repeat-x; color:#333333; } код между тегами head : <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" rel="stylesheet" type="text/css"> <script language="javascript" src="js_hover.js" type="text/javascript"></script> </head> файл js_hover.js : <script type="text/javascript"> jsHover = function() { var hEls = document.getElementById("menu").getElementsByTagNa me("LI"); for (var i=0, len=hEls.length; i<len; i++) { hEls[i].onmouseover=function() { this.className+=" jshover"; } hEls[i].onmouseout=function() { this.className=this.className.replace(" jshover", ""); } } } if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover); </script> |
fizichello, я же просил использовать таги... Отредактируйте свой пост.
|
Строку
navigator.userAgent.indexOf("Opera")==-1 можно заменить на !window.opera |
Цитата:
|
убрал, не помогло. может у меня просто тугой комп?))
|
Сам по себе ИЕ дольше рендерит страницу (из собственных наблюдений) чем другие. Думаю, такое простое меню не должно его грузить. Возможно есть ещё какие-нибудь динамические элементы, флэш, например?! Ещё на скорость рендеринга влияет объём памяти видеокарты.
|
Часовой пояс GMT +3, время: 10:47. |