jQuery - если я перемещаю div с помощью клавиатуры - PullRequest
10 голосов
/ 16 июля 2010

Если у меня есть div с фиксированной высотой и шириной, который я перемещаю с помощью нажатия клавиши (или keydown / keyup). Могу ли я получить окно, чтобы «следовать» за этим div?

Я знаю, что вы можете автоматически прокручивать страницу, но можете ли вы получить координаты div и прокручивать страницу при перемещении div?

Ответы [ 3 ]

1 голос
/ 16 июля 2010

В одну сторону:

$(document.body).bind('keydown', function(){
    $('#somediv')[0].scrollIntoView(true);
});

В другую сторону:

$(document.body).bind('keydown', function(){
    $('#somediv').css('top', $(window).scrollTop() + 'px');
});

Плавный путь:

$(document.body).bind('keydown', function(){
    $('#somediv').animate({'top': $(window).scrollTop() + 'px'}, 1000);
});
1 голос
/ 16 июля 2010

вы используете фреймворк javascript?Если вы используете jQuery, вы можете получить позицию div, используя:

jQuery('#yourdiv').position().top()
jQuery('#yourdiv').position().left()

Кроме того, если вы используете jQuery, окно автоматически прокрутится, чтобы сохранить Div в поле зрения в любом случае без дальнейшей работы с вашей стороны.

В ответ на ваш комментарий:

Вы можете использовать jQuery ('body'). Animate ({scrollTop: xPosOfDiv});

0 голосов
/ 16 июля 2010
var pos = $("#theDiv").position();
window.scrollTo(pos.left, pos.top);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...