Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Прокрутка колесом мыши к якорю или 100% высоты экрана браузера (https://javascript.ru/forum/events/49392-prokrutka-kolesom-myshi-k-yakoryu-ili-100%25-vysoty-ehkrana-brauzera.html)

Нарек 11.08.2014 14:25

Прокрутка колесом мыши к якорю или 100% высоты экрана браузера
 
Здравствуйте.
Есть такой код который скроллит расстояние равное 100% высоты браузера.

$(document).ready(function(){
  var winHeight = window.innerHeight ?
                function() {
                    return window.innerHeight;
                } :
                function() {
                    return document.documentElement.clientHeight;
                };
  $('.first-block').height(winHeight);
  $(window).scroll(function(){
    
    var firstBlockHeight = winHeight();
    var scrollTop= $('body').scrollTop();
    
    if (scrollTop > 0 && scrollTop < firstBlockHeight/2 && $('body').hasClass('scrolled') === false) {
      $("body")
          .animate({ scrollTop: firstBlockHeight+10 }, 600)
          .addClass('scrolled');
      
    } else if (scrollTop==0) {
      $("body")
        .animate({ scrollTop: 0 }, 600)
        .removeClass('scrolled');
    }
  });
});


Проблема в том, что код не кроссбраузерный (в ФФ не работает), да и если поиграться с ним то появляется глюк с цикличной прокруткой вверх и вниз без остановки.
Как можно эти проблемы решить? Буду очень благодарен.

Ссылка на JsFiddle

Pavel M. 11.08.2014 18:57

почитайте сначала http://learn.javascript.ru/metrics-window

Нарек 11.08.2014 21:00

Pavel M.,
Спасибо за ссылку, я пока что дошел вот до сюда http://learn.javascript.ru/array-methods и буду очень благодарен если кто то из бывалых поможет кодом.


Часовой пояс GMT +3, время: 06:32.