С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Kayker
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 59
1

Ошибка при скролле страницы: Uncaught TypeError: Cannot read property 'top' of undefined

08.02.2018, 10:23. Просмотров 259. Ответов 3
Метки нет (Все метки)

Доброго времени суток.
Написал скрипт посекционной прокрутки лендинга, скрипт работает, но в консоли появляется ошибка. которая множится при скроле
scroll.js:5 Uncaught TypeError: Cannot read property 'top' of undefined
at scroll.js:5
html выглядит так
HTML5
1
2
3
4
5
<section class='visible'></section>
<section></section>
<section></section>
<section></section>
<section></section>
Вот скрипт, ошибка в пятой строке
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$(document).ready(function () {
    var lastScrollTop = 0;
    $(window, 'body,html').scroll(function (event) {
        var st = $(this).scrollTop();
        var action_top = $('.visible').offset().top;
        if (st > action_top) {
          if(st-action_top>250){
              var top= $('.visible').next('section').offset().top;
              var next=$('.visible').next('section');
              $('.visible').removeClass('visible');
              $('body,html').animate({scrollTop: top},1000);
              setTimeout(function () {
                  next.addClass('visible');
              },1300)
              lastScrollTop = $(window).scrollTop();
              return false
          }
 
 
 
 
        }
        else {
            var top= $('.visible').prev('section').offset().top;
            var next=$('.visible').prev('section');
            $('.visible').removeClass('visible');
            $('body,html').animate({scrollTop: top},1000);
            setTimeout(function () {
                next.addClass('visible');
            },1300)
            lastScrollTop = $(window).scrollTop();
            return false
        }
 
 
    });
})
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2018, 10:23
Ответы с готовыми решениями:

Uncaught TypeError: Cannot read property 'top' of undefined
Добрый день, решил поставить плагин simple scroll follow.Возникает...

Uncaught TypeError: Cannot read property 'click' of undefined
Давно не писал на javascript и тут пришлось. и так у меня есть проблема, ну...

Uncaught TypeError: Cannot read property 'show' of undefined
Здравствуйте, в ходе работы столкнулся с такой ошибкой как Uncaught TypeError:...

Uncaught TypeError: Cannot read property 'html' of null
Выдает ошибку - function getvalues () {...

Uncaught TypeError: Cannot read property 'innerHTML' of null
Ошибка в работе кода: &lt;script type='text/JavaScript'&gt; function...

3
Уф
600 / 580 / 372
Регистрация: 13.07.2015
Сообщений: 1,767
Завершенные тесты: 1
08.02.2018, 10:54 2
а че не понятного, когда ты мышкой крутишь то событие скролл срабатывает и видит твой класс визибл, а когда из функции перемотка запускается в animate, то ты класс visible удаляешь и в течении всей секунды опять к этому событию обращаешься, но оно уже не может найти элементы с таким классом. решение простое:
Javascript
1
2
3
4
    var lastScrollTop = 0;
    $(window, 'body,html').scroll(function (event) {
        if($('.visible').length==0) return;
        .........
1
Balanaar
935 / 801 / 386
Регистрация: 11.07.2016
Сообщений: 2,363
08.02.2018, 10:57 3
В определённый момент на 10й строке вы удаляете класс visible с элемента.
Последующие после этого выборки $('.visible') дают пустую коллекцию, а применение метода offset() к пустой коллекции вернёт undefined. Вы не можете считать свойство top у undefined.
1
Kayker
0 / 0 / 0
Регистрация: 22.05.2014
Сообщений: 59
08.02.2018, 11:42  [ТС] 4
Спасибо, ушла ошибка, не учёл, что событие scroll срабатывает не только на прокрутку, но и воообще на проскроленную страницу
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2018, 11:42

Ошибка Uncaught TypeError: Cannot set property 'innerHTML' of null
как исправить её?

Ошибка Uncaught TypeError: Cannot read property 'offsetX' of undefined
Не могу избавиться от ошибки Uncaught TypeError: Cannot read property...

Uncaught TypeError: Cannot read property 'value' of undefined
Не могу понять в чем проблема выдает ошибку Uncaught TypeError: Cannot read...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru