如果我有一個固定的高度和寬度的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