Я использую следующий фрагмент кода, чтобы зафиксировать позицию div при прокрутке вниз (чтобы он оставался в окне).Это прекрасно работает, но в IE7 я получаю ошибку: offset().top is null or not an object.
$(document).ready(function(){
var msie6 = $.browser == 'msie' && $.browser.version < 7;
if (!msie6) {
var top = $('#comment').offset().top - parseFloat($('#comment').css('margin-top').replace(/auto/, 0));
$(window).scroll(function (event) {
// what the y position of the scroll is
var y = $(this).scrollTop();
// whether that's below the form
if (y >= top) {
// if so, ad the fixed class
$('#comment').addClass('fixed');
} else {
// otherwise remove it
$('#comment').removeClass('fixed');
}
});
}
});
Поиск в Google Я нашел это (см. Нижний пост Эрла Дженкинса) http://api.jquery.com/offset/ В котором он решает эту конкретную ошибку,Но, как я начинающий jQuery и javascript, я не знаю, как реализовать это исправление, потому что в своем посте он использует фиксированное значение (100), а в приведенном выше фрагменте кода - нет.
Я пытался исправить, выполнив это:
var fix = $('#comment').offset();
var top = fix.top - parseFloat($('#comment').css('margin-top').replace(/auto/, 0));
Но это не сработало.Спасибо за вашу помощь!