Javascript 在Java脚本中,当焦点到达屏幕的末尾时,滚动到中间
功能:我在页面上添加了文本框和链接。页面上的每个元素都分配了Javascript 在Java脚本中,当焦点到达屏幕的末尾时,滚动到中间,javascript,Javascript,功能:我在页面上添加了文本框和链接。页面上的每个元素都分配了tabIndex。您可以从文本框中弹出选项卡,然后按上下箭头键,我们可以遍历链接 问题:当我到达屏幕末端时,我想将窗口滚动到中间。我已经计算了偏移量来找出底部,但它有时有效,有时无效 注意:主要是在chrome中,但不知怎的,它是如何工作的!!但这不适用于任何其他浏览器 JavaScript函数: function abc(event) { // Find active Element tabIndex var tab
tabIndex
。您可以从文本框中弹出选项卡,然后按上下箭头键,我们可以遍历链接
问题:当我到达屏幕末端时,我想将窗口滚动到中间。我已经计算了偏移量来找出底部,但它有时有效,有时无效
注意:主要是在chrome中,但不知怎的,它是如何工作的!!但这不适用于任何其他浏览器
JavaScript函数:
function abc(event) {
// Find active Element tabIndex
var tabIndexElement = document.activeElement.tabIndex;
// tabIndex for element is 0 then send focus back to first search link
if (tabIndexElement == 38) {
document.querySelector('[tabIndex="2"]').focus();
event.preventDefault();
return;
}
// Based on Up and Down Key press move focus from next or previous search links
if (event.keyCode == 38) { // up key press
var queryString = '[tabindex="' + (--tabIndexElement) + '"]';
var currentElement = document.querySelector(queryString);
currentElement.focus();
event.preventDefault();
// I will work on up event
}
if (event.keyCode == 40) { // down key press
var queryString = '[tabindex="' + (++tabIndexElement) + '"]';
var currentElement = document.querySelector(queryString);
currentElement.focus();
// This is what i think how can i approach this
var h = window.innerHeight;
var rect = currentElement.getBoundingClientRect();
var offset = h - rect.top;
currentElement.innerHTML = currentElement.innerHTML + ' offset:'+offset+' rectb:'+rect.bottom;
if (offset < 0) {
currentElement.innerHTML = currentElement.innerHTML + ' scroll';
window.scrollTo(0, rect.top);
} else {
currentElement.innerHTML = currentElement.innerHTML + ' scroll1';
event.preventDefault();
}
}
return true;
}
功能abc(事件){
//查找活动元素选项卡索引
var tabIndexElement=document.activeElement.tabIndex;
//元素的tabIndex为0,然后将焦点发送回第一个搜索链接
if(tabIndexElement==38){
document.querySelector('[tabIndex=“2”]').focus();
event.preventDefault();
返回;
}
//根据上下键,从下一个或上一个搜索链接移动焦点
如果(event.keyCode==38){//按向上键
var queryString='[tabindex=“”+(-tabIndexElement)+'”];
var currentElement=document.querySelector(queryString);
currentElement.focus();
event.preventDefault();
//我将致力于这项活动
}
如果(event.keyCode==40){//按下向下键
var queryString='[tabindex=“”+(++tabIndexElement)+'”];
var currentElement=document.querySelector(queryString);
currentElement.focus();
//这就是我想的,我该怎么做
var h=窗内高度;
var rect=currentElement.getBoundingClientRect();
var offset=h-rect.top;
currentElement.innerHTML=currentElement.innerHTML+'offset:'+offset+'rectb:'+rect.bottom;
如果(偏移量<0){
currentElement.innerHTML=currentElement.innerHTML+“滚动”;
滚动到(0,矩形顶部);
}否则{
currentElement.innerHTML=currentElement.innerHTML+“scroll1”;
event.preventDefault();
}
}
返回true;
}
提前谢谢