/ / Створення прототипу об'єкта паралакса з jQuery, і я постійно отримую невизначені помилки у функціях jQuery - javascript, jquery, прокрутка, прототип

Створення прототипу об'єкта паралакса з використанням jQuery, і я постійно отримую невизначені помилки в функціях jQuery - Javascript, Jquery, прокрутка, прототип

Скрипка http://jsfiddle.net/chdhmphry/z8upoccm/

Я намагаюся створити прототип «паралакса» длявзаємодія з декількома прокрутками на одній сторінці, але я продовжую отримувати "Uncaught TypeError: undefined is not function" у рядках 12, 13 та 35. Я досить новачок у прототипах, але jQuery не грає добре з прототипами? Я використовую інший код jquery в інших його областях без помилок, лише коли я взаємодію з елементом.

Object.prototype.parallax = function(userOptions){

// Default info
var options = {
speed: 6,
direction: "down"
};
options = $.extend( options, userOptions );

// Element info
var element = this;
var startPoint = element.position().top;
var endPoint = element.position().top + element.height();

// Scroll info
var scrollPos = {
top: $(window).scrollTop(),
bottom: $(window).scrollTop() + $(window).height()
};

// first call
scrolling();

// call on scroll
$(window).on("scroll", function(){
scrolling();
});

function scrolling(){
scrollPos = {
top: $(window).scrollTop(),
bottom: $(window).scrollTop() + $(window).height()
};

element.css({"transform": "translateY("+(scrollPos.top - startPoint)+")"});

}
};

$("#js-new-title-stuck-3").parallax({speed:2});

Дякую!

Відповіді:

1 для відповіді № 1

Я б тут зробив пару речей (робоча скрипка http://jsfiddle.net/z8upoccm/2/):

1.) Здається, що функція ініціалізується на вашому об’єкті jquery, як очікувалося, але потім знову на звичайних елементах DOM. Дозвольте пройти лише елементи jquery.

Object.prototype.parallax = function(userOptions){
if(!this.jquery) return false;

2.) Вам потрібні одиниці у властивості clate translate

element.css({"transform": "translateY("+(scrollPos.top - startPoint)+"px)"});