Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

В моём javascript коде есть баг. Если медлено скролить вниз то код сработает но если быстро то нет в чём проблема??

Димон Ученик (10), на голосовании 4 года назад
Дополнен 4 года назад
(function(){
var nav = document.getElementById("nav");

nav.style.cssText = "float: left; position: relative; width: 100%; height: 200px; background: red;";
})();

onscroll = function(){
var y = pageYOffset,
yTop = 200,
result = yTop - y;

if(result >= 100){
nav.style.cssText = "float: left; position: relative; width: 100%; height: 200px; background: green;";

if(result <= 100){
nav.style.cssText += "top: 0px; position: fixed; float: left;";
}
}

if(result >= 100){
nav.style.height = result + "px";
}
}
Дополнен 4 года назад
body{
margin: 0px;
padding: 0px;
}

#wrap{
width: 100%;
height: 1000px;
}

#menuMain{
float: left;
position: relative;
width: 100%;
height: 100px;
background: gold;
}
Дополнен 4 года назад
div id="wrap">
nav id="menuMain">/nav>
nav id="nav">/nav>
/div>
Голосование за лучший ответ
Aljebro Просветленный (27088) 4 года назад
Идеально. Вопрос содержит ответ:
В твоём javascript коде есть баг.
ДимонУченик (10) 4 года назад
ОП сори вот скидываю.
Aljebro Просветленный (27088) Глупость в логике. css даже не смотрю. if(result >= 100){ ...A if(result <= 100){ ...B} } B выполняется только в 100. Видимо, когда, медленно 100 и выпадает.
Андрей Гуру (3826) 4 года назад
Возможно документ надо с

$(document).ready(function()

начинать.
Похожие вопросы