Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 焦点元素隐藏在固定菜单后面_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 焦点元素隐藏在固定菜单后面

Javascript 焦点元素隐藏在固定菜单后面,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个网站,底部有一个菜单,我将其设置为“位置固定”。滚动时,它将保持不变 使用“键盘”选项卡导航站点时,如果焦点元素不在视口中,则会自动滚动到该位置。这里的问题是,当一个焦点元素被scolled到时,它不会显示,因为它位于底部的固定菜单后面 任何我如何解决这个问题的idéa,以便窗口滚动到焦点元素显示的位置 谢谢你的滚动代码: // lets say element is the DOM element you want to scroll into view function scroll

我有一个网站,底部有一个菜单,我将其设置为“位置固定”。滚动时,它将保持不变

使用“键盘”选项卡导航站点时,如果焦点元素不在视口中,则会自动滚动到该位置。这里的问题是,当一个焦点元素被scolled到时,它不会显示,因为它位于底部的固定菜单后面

任何我如何解决这个问题的idéa,以便窗口滚动到焦点元素显示的位置


谢谢你的滚动代码:

// lets say element is the DOM element you want to scroll into view
function scrollNow(element) {
   // create a dummy element X pixels above 'element' 
   // where X is the height of your bottom menu
   // if X is not known in advance, calculate it using $('#menu').outerHeight()
   var dummy = $('<div></div>').css({
      position: 'absolute', top: $(element).offset().top - X 
   }).appendTo('body');
   dummy[0].scrollIntoView();
   dummy.remove(); // remove the dummy element
}
//假设元素是要滚动到视图中的DOM元素
函数scrollNow(元素){
//在“元素”上方创建一个虚拟元素X像素
//其中X是底部菜单的高度
//如果X事先未知,请使用$(“#menu')计算它
var dummy=$('').css({
位置:'绝对',顶部:$(元素).offset().top-X
}).附于(“主体”);
虚拟[0]。scrollIntoView();
dummy.remove();//删除虚拟元素
}

很酷,看起来很有前途。现在,当我应该运行此代码时,如何捕获事件?只有当元素通过对其进行tab获得焦点时,才会触发此事件。为此,您应该在
onblur
上调用此事件,即
$('.x').blur(function(){scrollNow(this);})-根据需要替换.x,但该事件是否包含错误的元素?模糊的(先前聚焦的)元素,而不是新聚焦的元素。不知何故,我也应该做一个检查,如果它获得了通过标签,而不是通过点击例如。哎呀!我指的是
.focus(..)
事件,而不是
.blur(..)
事件。我的错误。抱歉<代码>$('.x').focus(函数(){scrollNow(this);})是正确的选择。很好。但是我想做的tabkey检查呢?我不想在每一个焦点事件上都运行这个,只有当焦点通过标签获得时。单击焦点不应运行scrollNow()