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);