Нужна помощь. Имеется проблема в лице js скриптика, отвечающего за липкие блоки на странице. Вот пилотно-рабочий пример: http:// Проблема в том, что этот js работает с библиотекой 1.5.2 и более древними. А с более современными - напрочь отказывается. Его бы допилить (модернизировать), но у меня не хватает ума. Может кто-то поможет? Заранее благодарен!
js код: (Отобразить)
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- $(document).ready(function(){
- $( '#followblock_levo' ).scrollFollow({
- speed: 3000,
- offset: 6,
- });
- $( '#followblock_pravo' ).scrollFollow({
- speed: 2500,
- offset: 5,
- });
- });
- ( function( $ ) {
- $.scrollFollow = function ( box, options ) {
- box = $( box );
- var position = box.css( 'position' );
- function ani() {
- box.queue( [ ] );
- var viewportHeight = parseInt( $( window ).height() );
- var pageScroll = parseInt( $( document ).scrollTop() );
- var parentTop = parseInt( box.cont.offset().top );
- var parentHeight = parseInt( box.cont.attr( 'offsetHeight' ) );
- var boxHeight = parseInt( box.attr( 'offsetHeight' ) + ( parseInt( box.css( 'marginTop' ) ) || 0 ) + ( parseInt( box.css( 'marginBottom' ) ) || 0 ) );
- var aniTop;
- if ( isActive ) {
- if ( options.relativeTo == 'top' ) {
- if ( box.initialOffsetTop >= ( pageScroll + options.offset ) ) {
- aniTop = box.initialTop;
- }
- else {
- aniTop = Math.min( ( Math.max( ( -parentTop ), ( pageScroll - box.initialOffsetTop + box.initialTop ) ) + options.offset ), ( parentHeight - boxHeight - box.paddingAdjustment ) );
- }
- }
- else if ( options.relativeTo == 'bottom' ) {
- if ( ( box.initialOffsetTop + boxHeight ) >= ( pageScroll + options.offset + viewportHeight ) ) {
- aniTop = box.initialTop;
- }
- else {
- aniTop = Math.min( ( pageScroll + viewportHeight - boxHeight - options.offset ), ( parentHeight - boxHeight ) );
- }
- }
- if ( ( new Date().getTime() - box.lastScroll ) >= ( options.delay - 20 ) ) {
- box.animate( {
- top: aniTop
- }, options.speed, options.easing
- );
- }
- }
- };
- var isActive = true;
- if ( options.container == '') {
- box.cont = box.parent();
- }
- else {
- box.cont = $( '#' + options.container );
- }
- box.initialOffsetTop = parseInt( box.offset().top );
- box.initialTop = parseInt( box.css( 'top' ) ) || 0;
- if ( box.css( 'position' ) == 'relative' ) {
- box.paddingAdjustment = parseInt( box.cont.css( 'paddingTop' ) ) + parseInt( box.cont.css( 'paddingBottom' ) );
- }
- else {
- box.paddingAdjustment = 0;
- }
- $( window ).scroll( function () {
- $.fn.scrollFollow.interval = setTimeout( function(){ ani();} , options.delay );
- box.lastScroll = new Date().getTime();
- }
- );
- box.lastScroll = 0;
- ani();
- };
- $.fn.scrollFollow = function ( options ) {
- options = options || {};
- options.relativeTo = options.relativeTo || 'top';
- options.speed = options.speed || 500;
- options.offset = options.offset || 0;
- options.easing = options.easing || 'easeInOutBack';
- options.container = options.container || this.parent().attr( 'id' );
- options.killSwitch = options.killSwitch || 'killSwitch';
- options.onText = options.onText || 'Turn Slide Off';
- options.offText = options.offText || 'Turn Slide On';
- options.delay = options.delay || 0;
- this.each( function() {
- new $.scrollFollow( this, options );
- }
- );
- return this;
- };
- })( jQuery );
- jQuery.extend( jQuery.easing,{
- easeInOutBack: function (x, t, b, c, d, s) {
- if (s == undefined) s = 1.2;
- if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.135))+1)*t - s)) + b;
- return c/2*((t-=2)*t*(((s*=(1 /*1.135*/))+1)*t + s) + 2) + b;
- }
- });