2013-11-26 8 views
1

Я пытаюсь создать сайт, в котором, когда пользователь начнет прокручивать его, он автоматически прокручивает их (не прыгает) в заданное положение, чтобы можно было видеть содержимое. Содержимое уже есть на странице, которую я просто не хочу, чтобы они прокручивали ее, чтобы как только они начали перемещаться по странице, это поможет им прокрутить до заданного значения.Обнаружить прокрутку - прокрутить до div

Это то, что я так далеко, но я заблудился:

<script type="text/javascript"> 
$(body).scroll(function() { 
    if ($this).scrollTop() > 1) { 

    } 
}); 
</script> 

ответ

4

Here's a fiddle

var scrollFunction = function() { 
    $('html, body').not(':animated').animate({ 
     scrollTop: $("#layer-2").offset().top //gets the position of the next layer 
    }, 1000, function() { 
     $(document).off('scroll', scrollFunction) 
    }); 
} 

$(document).on('scroll', scrollFunction); 
+0

Это милый эффект: p –

+0

это действительно хорошо, стыдно, что вы не можете прокрутить. – user2598957

+0

@ user2598957 Я обновил сценарий. Когда анимация закончена, она позволяет прокручивать. Для вас нужно проверить, находится ли положение прокрутки в 0, чтобы снова подключить слушателя. –

2

Вы можете связать свой элемент с scrollstart (также есть scrollstop) событие:

jQuery('#yourElementId').bind("scrollstart",scrollFunc); 

var scrollFunc = function(){ 
    //if(jQuery('#yourElementId').scrollTop()>1) //unnecessary 
    jQuery('#yourElementId').scrollTop(300); // change 300 to any number you want 
} 
+0

Вы связались с «docs» для мобильного jQuery, я не думаю, что проблема OP только для мобильных устройств. Scrollstart не существует в jQuery, вам нужен плагин: http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ – jammykam

+0

Спасибо, не заметил этого, позвольте мне изменить эту ссылку. –

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