Son zamanlarda, her sütun için filtre olarak girdi olan bir tablo üstbilgisinde bir sorun yaşadım. Filtrelerden sekme işlemi odağı hareket ettirecektir, ancak girişlerden biri görünmüyorsa veya kısmen göründüyse, yalnızca SADECE görünümü girdiye getirecektir ve tam giriş ve sütunu görüntülemeye getirmem istenmiştir. Ve sonra geri sola doğru sekme yapıyorsa aynısını yapması istendi.
document.getElementById('myElement').scrollLeft = 50;
ya: http://www.webdeveloper.com/forum/showthread.php?197612-scrollIntoView-horizontal
Kısa cevap kullanmak istediğiniz olmasıdır:
Bu bağlantı başladı beni yardımcı
İşte
$('#myElement')[0].scrollLeft = 50;
benim çözüm (ki olabilir Bu soru için overkill, ama belki birilerine yardım edeceğim):
// I used $.on() because the table was re-created every time the data was refreshed
// #tableWrapper is the div that limits the size of the viewable table
// don't ask me why I had to move the head head AND the body, they were in 2 different tables & divs, I didn't make the page
$('#someParentDiv').on('focus', '#tableWrapper input', function() {
var tableWidth = $('#tableWrapper')[0].offsetWidth;
var cellOffset = $(this).parent()[0].offsetLeft;
var cellWidth = $(this).parent()[0].offsetWidth;
var cellTotalOffset = cellOffset + cellWidth;
// if cell is cut off on the right
if (cellTotalOffset > tableWidth) {
var difference = cellTotalOffset - tableWidth;
$('#tableWrapper').find('.dataTables_scrollHead')[0].scrollLeft = difference;
$('#tableWrapper').find('.dataTables_scrollBody')[0].scrollLeft = difference;
}
// if cell is cut off on the left
else if ($('#tableWrapper').find('.dataTables_scrollHead')[0].scrollLeft > cellOffset) {
$('#tableWrapper').find('.dataTables_scrollHead')[0].scrollLeft = cellOffset;
$('#tableWrapper').find('.dataTables_scrollBody')[0].scrollLeft = cellOffset;
}
});
jQuery 'scrollTo' eklentisi bunu çeşitli yöntemlerle halledebilir. JQuery bir seçenek midir? –
YUI kullanıyorum. JQuery bunu nasıl yapıyor? Hangi DOM API kullanıyor? – mark
window.scrollTo' ve 'window.scrollBy' 'ye bakın - çok düşük, ancak işlem üzerinde tam güce sahipsiniz –