2014-09-18 2 views
0

Я использую следующий JavaScript/JQuery скрипт для создания гладкой якорь прокруткипереполнение-х: скрытые разрывы гладкой прокрутки

$(function() { 
    $('a.page-scroll').bind('click', function(event) { 
     event.preventDefault(); 
     var $anchor = $(this); 
     console.log($anchor) 
     $('html,body').stop().animate({ 
      scrollTop: $($anchor.attr('href')).offset().top 
     }, 1500, 'easeInOutExpo'); 
    }); 
}); 

который прекрасно работает, если следующее не входит в мой стилей CSS лист

html,body { 
    /*Irrelevant style rules*/ 
    overflow-x: hidden; 
} 

Почему это происходит? Когда я удаляю или комментирую переполнение-x: hidden ;, скрипт работает отлично. Если я оставлю это, это не сработает.

+0

Я удаляю только полосу прокрутки по оси X, это не должно мешать прокрутке по оси Y, если это так? – jkarimi

+0

http://jsbin.com/vifexa/2/edit работает для меня. –

ответ

1

Чтение первого раздела this work around говорит мне, что у вас не может быть переполнения скрытого и другого видимого. Я добавил несколько JS, чтобы изменить html, body css для события анимации. Хакки, но это работает!

$(function() { 
    $('a.page-scroll').bind('click', function(event) { 
    event.preventDefault(); 
    var $anchor = $(this); 
    $('html,body').css(
    "overflow-x", "visible" 
    ); 
    $('html,body').stop().animate({ 
     scrollTop: $($anchor.attr('href')).offset().top 
    }, 1500, 'easeInOutExpo'); 
    $('html,body').css(
     "overflow-x", "hidden" 
    ); 
    }); 
}); 
+0

Это должно быть самая странная встреча с ошибками, которую я имел до сих пор. Но он решил проблему, спасибо. –

Смежные вопросы