2016-09-28 11 views
10

В одной странице я включаю только jQuery 3.1.1 и stellar.js для эффектов прокрутки параллакса, но когда я пытаюсь использовать его как $(window).stellar();, я получаю эту ошибку в консоли :Uncaught TypeError с помощью stellar.js с jquery 3.1.1

Uncaught TypeError: f.getClientRects is not a function (jquery-3.1.1.min.js:4) 

Я попытался использовать плагин migrate, как предложено во многих ответах, но не решает проблему.

Этот фрагмент текста служит иллюстрацией ошибки.

$(function(){ 
 
    $('.main').stellar(); 
 
});
<div class="main"> 
 
    <div class="slide"></div> 
 
    <div class="slide"></div> 
 
    <div class="slide"></div> 
 
</div> 
 

 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/stellar.js/0.6.2/jquery.stellar.min.js"></script>

+0

Можете ли вы повторить ошибку с скрипкой или что-то? – Adjit

+0

Выполнено, я добавил фрагмент, но я не верю, что это помогает. – Vixed

+0

Да, я имею в виду, что это похоже на какую-то проблему совместимости с самой новой версией jQuery. Он работает в любой версии 2.0 – Adjit

ответ

5

stellar.js терпит неудачу из-за этого фрагмента кода:

$(window).load(function() { 
       var oldLeft = self._getScrollLeft(), 
        oldTop = self._getScrollTop(); 

       self._setScrollLeft(oldLeft + 1); 
       self._setScrollTop(oldTop + 1); 

       self._setScrollLeft(oldLeft); 
       self._setScrollTop(oldTop); 
      }); 

В JQuery 3.0 событие загрузки удаляется. Вы можете изменить on('load', function{});

$(window).on('load', function() { 
        var oldLeft = self._getScrollLeft(), 
         oldTop = self._getScrollTop(); 

        self._setScrollLeft(oldLeft + 1); 
        self._setScrollTop(oldTop + 1); 

        self._setScrollLeft(oldLeft); 
        self._setScrollTop(oldTop); 
       }); 

Вот это «работает» скрипка: https://jsfiddle.net/y19x160g/1/ и работая, я просто говорю, что больше не бросает ошибку.

P.S: Я не знаю точно, для чего предназначена эта библиотека.

В этом js скрипке я просто скопировал неминифицированный скрипт из текущего проекта GitHub: https://github.com/markdalgleish/stellar.js/blob/master/src/jquery.stellar.js и модифицировал событие загрузки.

Другие ссылки: https://api.jquery.com/load-event/ - см осуждается

-1

Вы установили jQuery UI 1.12.0-rc.2 также?

Приветствия

+0

Я не использую jQuery UI. – Vixed