如果我有一个固定的高度和宽度的div,我使用keypress(或keydown/keyup)移动。我可以让窗口“跟随”该div吗?jQuery - 如果我用键盘移动div
我知道你可以自动滚动一个页面,但你可以得到一个div的坐标,并随着div的移动而滚动页面吗?
如果我有一个固定的高度和宽度的div,我使用keypress(或keydown/keyup)移动。我可以让窗口“跟随”该div吗?jQuery - 如果我用键盘移动div
我知道你可以自动滚动一个页面,但你可以得到一个div的坐标,并随着div的移动而滚动页面吗?
你使用的是JavaScript框架吗?如果你使用jQuery,你可以使用得到div的位置:
jQuery('#yourdiv').position().top()
jQuery('#yourdiv').position().left()
另外,如果你使用jQuery,窗口会自动滚动到与您没有进一步的工作,保持股利鉴于反正。
在回答您的评论:
您可以使用jQuery( '主体'),动画({scrollTop的:xPosOfDiv});
啊,非常好 - 会有一种方法将页面滚动到那个位置?我怀疑它实际上是.scroll()... – 2010-07-15 20:21:22
没有冒犯,但标题和标签说明他使用JQuery。 ;) – Bobby 2010-07-15 20:21:31
没关系 - 知道了!干杯! - 我在6分钟内接受 – 2010-07-15 20:23:36
var pos = $("#theDiv").position();
window.scrollTo(pos.left, pos.top);
请注意'scrollTo'需要scrollTo插件:http://plugins.jquery.com/project/ScrollTo – kingjeffrey 2010-07-15 21:03:10
@kingjeffey不,我没有使用任何插件。我使用的是本地Javascript方法:https://developer.mozilla.org/en/DOM/window.scrollTo – 2010-07-15 22:34:27
方式一:
$(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);
});
也会提出这个建议 - 唯一需要注意的是IE6/7渲染器有时会被混淆'scrollIntoView'并打破布局。然而,它绝对可以在大部分时间内运行。 – Pointy 2010-07-15 20:29:44
你见过http://flesler.blogspot.com/2007/10/jqueryscrollto.html吗? – Adam 2010-07-15 20:20:58
啊,不,我没有 - 我有点想自己编写它,而不是使用插件。 – 2010-07-15 20:22:01
你可以放弃对IE6的支持吗? :) – Anurag 2010-07-15 20:25:36