2014-02-13 4 views
0

У меня есть элемент, который можно перетаскивать через jQueryUI. Я использую его, чтобы выполнить перетаскивание, чтобы обновить взаимодействие.Имитировать движение мыши по элементу на основе вертикальной прокрутки тела

То, что я пытаюсь выполнить, - это когда пользователь прокручивается в верхнюю часть окна/тела, но пытается прокручивать дальше, а затем на расстояние, которое прокручивает пользователь, этот элемент (#main) перетаскивается вниз.

Как я планировал перетащить его, имитируя события .mousedown() и .mousemove() и `.mouseup(), которые, похоже, работают (что означает, что они запускают перетаскивание).

Вот что я думаю, что должно работать в каком-то-реальном/каком-псевдокоде:

$(window).on('scroll', function(){ 
    if($(this).scrollTop() === 0){ 

     if(extra movement beyond scrollTop 0){ 
      $('#main').mousedown(); 
      //move #main down number of pixels of extra movement/extra scroll up. 
      $('#main').mouseup(); 
     } 
    } 
}); 

ответ

1

Вы можете получить позицию прокрутки, делая это:

if($("body").scrollTop() === 0) 
{ 
    //do your stuff 
} 

scrollTop() функция возвращает px номер страницы с прокрутки страницы вверху элемента, на котором он активирован (в примере выше - на теге body).

Вот example

Если вам нужно получить дельту прокрутки вы можете найти this SO полезным.

+0

Это ответ на вопрос? Если да, то пожалуйста, примите это :) – vlio20

+0

нет, я знаю, как использовать scrollTop, я хочу узнать, как получить движение за пределы scrollTop === 0. Поэтому, когда scrollTop уже равен нулю, и пользователь пытается прокрутить больше, как Я узнаю, сколько они пытаются прокрутить больше? – gomangomango

+0

Вы можете сделать это с небольшим взломом. Вы можете создать элемент (например) с высотой 100 пикселей, но использовать его только 90px (сначала устанавливая позицию по умолчанию 10px, а затем, когда пользователь попытается переместиться поверх этой 10px, вы получите эту позицию. If вы пытаетесь добиться эффекта увеличения, вот ссылка http://usehook.com/ – vlio20

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