[英]Scroll if element not in windows view
我有一个表格,您可以在其中选择一个元素,然后每当您按向上或向下箭头键时,就会选择下一个或上一个表格行。
为此,我创建了以下jquery:
$(document).keydown(function(e) {
var ar=new Array(33,34,35,36,37,39);
if(selected_row_id != null){
var key = e.which;
// up
if(key == 38){
$('#'+selected_row_id).prev().trigger('click');
e.preventDefault();
}
//down
if(key == 40 ){
$('#'+selected_row_id).next().trigger('click');
e.preventDefault();
}
if($.inArray(key,ar) > -1) {
e.preventDefault();
return false;
}
return true;
}
});
这很好,但是有一个使我烦恼的错误。 当表格行比您在屏幕上实际看到的位置靠下时(这意味着您必须滚动),窗口不会自动滚动。
我的问题是,当屏幕上看不到某个元素时,如何确保窗口滚动?
这是从此处获取的函数:
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
&& (elemBottom <= docViewBottom) && (elemTop >= docViewTop) );
}
如果元素在窗口中完全可见,则返回true
,否则返回false
。
如果返回false
,则可以适当滚动窗口。
是的,这是可能的。
查看ScrollTo: http : //www.w3schools.com/jsref/met_win_scrollto.asp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.