JQuery - Если я перемещаю div с помощью клавиатуры

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

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

Ответ 1

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

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

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

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

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

Ответ 2

Один из способов:

$(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);
});

Ответ 3

var pos = $("#theDiv").position();
window.scrollTo(pos.left, pos.top);