#jquery #firefox
#jquery #firefox
Вопрос:
У меня есть следующий код, который я использую для отображения скрытого нижнего колонтитула при прокрутке вниз после определенной точки на странице.
jQuery(document).scroll(function(){
if(jQuery(window).scrollTop() >= jQuery('.foot').offset().top jQuery('.foot').height() - window.innerHeight) {
// Add class here
} else {
// Remove class here
});
Это прекрасно работает в Chrome и IE. Но не работает в Firefox. Я сузил проблему до jQuery(window).scrollTop(). Я создал этот тест http://jsfiddle.net/captainmorgan/cVsRE/1/
Откройте в Chrome и прокрутите вниз с помощью колесика мыши. Я получаю 100. Когда я делаю то же самое в Firefox, я получаю 114, но Firefox продолжает отображать несколько ящиков сообщений, и их число продолжает уменьшаться.
Кто-нибудь знает, почему Firefox делает это?
Ответ №1:
Попробуй:
jQuery(window).scroll(function(event) {
var NextScroll = jQuery(this).scrollTop();
if(NextScroll > (jQuery('.foot').offset().top jQuery('.foot').height() - window.innerHeight)) {
//action
}
});
Комментарии:
1. Это по-прежнему не работает в Firefox, так как NextScroll будет начинаться с (например, 114, но его значение будет продолжать уменьшаться, пока не достигнет 0, и в этот момент первая часть оператора if никогда не будет достигнута.
2. Я использую этот код в superkul. нет мобильного устройства. Я думаю, что это работает в Firefox
3. Если вы добавите предупреждение в NextScroll, вы увидите, что Firefox отображает несколько окон сообщений, в результате чего NextScroll все время заканчивается значением 0.
4. При отладке не следует использовать alert. Вы должны использовать console.log (NextScroll).
5. Спасибо за совет. Это по-прежнему не меняет того факта, что либо проблема с Firefox, либо мне нужно кодировать по-другому.