drifterz28
7/2/2014 - 4:43 PM

simple parallax to my understanding

simple parallax to my understanding

$.fn.parallax = function() {
    var $parallax = this;
    $(window).on('scroll', function () {
        var win_offset = window.pageYOffset;
        $parallax.each(function (i){
            var $local_this = $(this);
            var type = $local_this.attr('data-type');
            var speed = $local_this.attr('data-parallax');
            var direction = $local_this.attr('data-direction') || 'up';
            var parallax = win_offset / +speed;
            if (type === 'background') {
                var current_pos = window.getComputedStyle($local_this[i], null).backgroundPosition.split(' ');
                if ($local_this.attr('data-bg_pos')) {
                  current_pos = $local_this.attr('data-bg_pos').split(',');
                }
                var current_pos_top = parseInt(bg_pos[1].replace('/px%/i', ''), 10);
                var current_pos_left = parseInt(bg_pos[0].replace('/px%/i', ''), 10);
                $local_this.attr('data-bg_pos', bg_pos);
                $local_this.css({
                    'background-position': current_pos[0] + ' ' + (current_pos_top - parallax) + 'px'
                });
            } else {
                $local_this.css('top', '-' + parallax + 'px');
            }
        });
    });
};

$('.js-parallax').parallax();