2010-07-15 45 views
10

Nếu tôi có một div có chiều cao cố định và chiều rộng, mà tôi đang di chuyển bằng cách nhấn phím (hoặc phím tắt/khóa). Tôi có thể nhận được cửa sổ để "theo dõi" div đó không?jQuery - Nếu tôi đang di chuyển một div bằng bàn phím

Tôi biết bạn có thể tự động cuộn trang, nhưng bạn có thể nhận được tọa độ của div và cuộn trang khi div di chuyển không?

+0

Bạn đã xem http://flesler.blogspot.com/2007/10/jqueryscrollto.html chưa? – Adam

+0

Ah, không, tôi không có - tôi muốn tự mình viết mã thay vì sử dụng plugin. –

+0

bạn có thể thả hỗ trợ cho IE6 không? :) – Anurag

Trả lời

1

bạn có đang sử dụng khung javascript không? Nếu bạn sử dụng jQuery, bạn có thể có được vị trí của div sử dụng:

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

Ngoài ra, nếu bạn sử dụng jQuery, cửa sổ sẽ tự động di chuyển để giữ Div theo quan điểm nào không có công việc tiếp theo của bạn.

Đáp lại bình luận của bạn:

Bạn có thể sử dụng jQuery ('body') động. ({ScrollTop: xPosOfDiv});

+0

Ah, tuyệt vời - có cách nào để cuộn trang đến vị trí đó không? Tôi nghi ngờ nó sẽ được .scroll() thực sự ... –

+1

Không có hành vi phạm tội, nhưng tiêu đề và các thẻ được nói rằng ông sử dụng JQuery. ;) – Bobby

+0

Nevermind - GOT IT! Chúc mừng! - Ill chấp nhận trong 6 phút –

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

Lưu ý rằng 'scrollTo' yêu cầu plugin scrollTo: http://plugins.jquery.com/project/ScrollTo – kingjeffrey

+1

@kingjeffey Không, tôi không sử dụng bất kỳ plugin nào. Tôi đang sử dụng phương thức Javascript gốc: https://developer.mozilla.org/en/DOM/window.scrollTo –

1

Một cách:

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

Một cách khác:

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

mượt cách:

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

Cũng sẽ đề xuất điều này - điều duy nhất cần chú ý là thỉnh thoảng trình kết xuất IE6/7 bị nhầm lẫn bởi 'scrollIntoView' và ngắt bố cục. Tuy nhiên nó chắc chắn hoạt động * hầu hết * thời gian. – Pointy

Các vấn đề liên quan