|
|
|
| Здравствуйте, программисты и программистки!
Возник вопрос следующего характера:
Есть код выезжающего меню. Код работает, слава Богу, так, как и задумывалось - т.е. меню выезжает. Открываю на ноутбуке, в браузере Opera, этот код и меню выезжает с самого начала как-то "туговато", со скоростью не соответствующей той, на которую было рассчитано. Открываю у себя на ноутбуке, в браузере Google Chrome, этот код и сначала работает он "шустро", но "погоняв" немного выезжающее меню, оно замедляется и начинает выезжать так же медленно как и в браузере Опера. После перезагрузки браузера, меню снова начинает "резво" выезжать. Такая вот ситуация. Из-за чего это может быть? Из-за производительности ноутбука? Возможно такое? Проверял на ПК и на другом, более мощном ноутбуке - во всех браузерах меню работает хорошо. Будьте добры, если не затруднит кого, успокойте мою душу, протестируйте меню у себя и скажите, что это из-за ноутбука, а не из-за того, что, допустим, какая-нибудь функция setInterval() в коде очень туго работает. Код меню можно не смотреть и не "разгребать". Интересует вопрос - тормозит или не тормозит выезжание на других компьютерах.
<html>
<head>
<title></title>
<style>
div.divmenu {
display:block;
float:left;
margin-top:200px;
margin-left:0px;
border:solid 0px #000;
padding:0px;
height:300px;
overflow:hidden;
}
.ulmenu {
display:block;
position:relative;
z-index:100;
float:left;
border:solid 0px #000;
overflow:visible;
padding:0px;
margin:0px;
}
.ulmenu li {
display:block;
position:relative;
list-style:none;
float:left;
border:solid 0px #000;
}
.ulmenu a {
display:block;
border:solid 1px #777777;
border-right-width:0px;
padding:10px 15px;
text-align:center;
text-decoration:none;
background-color:#dddddd;
}
.ulmenu a:hover {
background-color:#eeeeee;
}
a.rbblock {
border-right-width:1px;
}
ul.submenu {
display:block;
position:absolute;
top:-74px;
z-index:-1;
border:solid 0px #000;
margin:0px;
padding:0px;
}
ul.submenu li {
display:block;
position:relative;
clear:left;
border:solid 0px #000;
width:134px;
}
ul.submenu li a {
padding-top:3px;
padding-bottom:5px;
text-align:left;
border-right-width:1px;
border-top-width:0px;
}
ul.submenu li a:hover {
background-color:#eeeeee;
}
div.after {
display:block;
border:solid 0px #000;
clear:both;
float:left;
}
</style>
</head>
<body>
<div class="divmenu">
<!-- menu start -->
<ul id="ulmenu" class="ulmenu">
<li><a href="#">Главная</a>
<ul class="submenu" class="pt3">
<li><a href="#">submenu</a></li>
<li><a href="#">submenu sub</a></li>
<li><a href="#">submenu</a></li>
<li><a href="#">submenu</a></li>
</ul>
</li>
<li><a href="#">Вход</a></li>
<li><a href="#">Гостевая книга</a>
<ul class="submenu" class="pt3">
<li><a href="#">submenu</a></li>
<li><a href="#">submenu sub</a></li>
<li><a href="#">submenu</a></li>
<li><a href="#">submenu</a></li>
</ul>
</li>
<li><a href="#">Форум</a></li>
<li><a class="rbblock" href="#">Контакты</a></li>
</ul>
<!-- menu end -->
<div class="after"></div>
</div>
<!-- script dropslow menu start -->
<script type="text/javascript">
var Int;
function f_Int(f)
{
clearInterval(Int);
if (f) {
Int = setInterval("f_Drop(true)", 5);
} else {
Int = setInterval("f_Drop()", 5);
}
}
function f_Drop(f)
{
var u = document.getElementById('ulmenu').getElementsByTagName('li')[0].getElementsByTagName('ul')[0];
var s = window.getComputedStyle(u, "");
var p = parseFloat(s.getPropertyValue("top"));
//var p = parseFloat(u.currentStyle.top);
if (f) {
u.style.top = (p + 2) + "px";
if (parseFloat(u.style.top) >= 41) {
u.style.top = "41px";
clearInterval(Int);
}
} else {
u.style.top = (p - 2) + "px";
if (parseFloat(u.style.top) <= (-74)) {
u.style.top = "-74px";
clearInterval(Int);
}
}
}
var li = document.getElementById('ulmenu').getElementsByTagName('li')[0];
li.onmouseover = new Function("f_Int(true)");
li.onmouseout = new Function("f_Int()");
</script>
<!-- script dropslow menu end -->
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: SilentChild
(23.02.2012 в 01:22)
| | нифига не работает.
ошибка в этой строке.
var s = window.getComputedStyle(u, "");
|
| |
|
|
|
|
|
|
|
для: elenaki
(23.02.2012 в 10:44)
| | В каком браузере не работает? Что за ошибка?
Если вы про IE, то да, там пока не должно работать. Мне интересно, как меню работает в Opera и Google Chrome. | |
|
|
|
|
|
|
|
для: SilentChild
(23.02.2012 в 12:21)
| | Mozilla тормозит, выезжает рывками. Opera и Chrome все отлично, в IE не работает. | |
|
|
|
|
|
|
|
для: Sergkol
(28.02.2012 в 23:12)
| | Благодарю! =) | |
|
|
|