Я хочу переместить 4 объекта DOM, когда пользователь прокручивает страницу.
Вы можете проверить страницу, о которой я говорю, по этому адресу:
http://www.tessuti -arredo.it / новый / chi_siamo / Rassegna /
как пользователь прокручивает - я использую $ (окно) .scroll (function () - я проверяю, превышает ли window.scrollTop больше 10 пикселей, чтобы переместить несколько объекты. Это, кажется, работает нормально.
но в выражении ELSE (я имею в виду, когда scrollTop меньше 10 пикселей) - и эти объекты должны возвращаться в исходное положение - у меня странное поведение, особенно на двух из 4 объектов, которые я перемещаю (два фиксированных объекта, которые я перемещаю вместе называем свой класс).
может быть, это немного сложно объяснить моим плохим английским, но если вы посмотрите на адрес, который я разместил выше, это довольно легко понять, просто попробуйте прокрутить страницу.
Объекты, которые я хочу переместить:
- объект link (a), содержащийся внутри #header div = $ ("# header h1 a")
- меню левой боковой панели вызывается с его id = $ ("# sidebar")
- и два фиксированных div, главное горизонтальное меню и его фон, называемые их class = $ (". moveMenu")
Одна важная последняя вещь: с Firefox, похоже, все в порядке, во всех других браузерах у меня переменная задержка, которая выглядит как ошибка в моем коде.
Если говорить о моем коде, то вот он:
$(document).ready(function(){
$(window).scroll(function(){
if($(this).scrollTop() > 10) {
$("#sidebar").stop().animate({top:'119px'}, 100, function (){
// some callback
});
$("#header h1 a").stop().animate({marginTop:'30px'}, 100, function (){
// some callback
});
$(".moveMenu").stop().animate({top:'0'}, 300, function (){
// here i change the class of fixed objects to call them back on else statement
$(this).removeClass('moveMenu').addClass('moveMenu2');
});
}else{
// this is happening with unwanted delay
$(".moveMenu2").stop().animate({top:'90'}, 300, function (){
$(this).removeClass('moveMenu2').addClass('moveMenu');
});
$("#sidebar").stop().animate({top:'89px'}, 100, function (){
$(this).css({'padding-top' : '40px'});
});
$("#header h1 a").stop().animate({marginTop:'0px'}, 100, function (){
// some callback
});
}
});
});
Я знаю, что есть несколько пустых обратных вызовов, я просто держал их, чтобы они были готовы к заполнению чем-то, я пытался удалить их, ничего не изменилось.
Еще одна вещь, которую я попробовал, - это вызвать два объекта задержки с определенным идентификатором вместо класса, но ничего не пошло лучше ...
Я действительно надеюсь, что вы найдете ошибку в моем коде, я знаю, что я не так хорош.