Jquery window.scroll不使用overflow-y滚动:滚动;

Jquery window.scroll不使用overflow-y滚动:滚动;,jquery,css,Jquery,Css,我有一个jQuery代码片段,可以滚动到下一个元素。由于某些原因,当我有一个div类overflow-y:scroll时,它不会滚动; 以下是我的完整代码: var lstEl=null; var-cntr=-1; $(文档).ready(函数(){ $('#btnSearch')。单击(函数(){ lstEl=null; cntr=-1; var vl=document.getElementById('searchTerm')。值; $(“#bodyContainer”).removeHig

我有一个jQuery代码片段,可以滚动到下一个元素。由于某些原因,当我有一个div类overflow-y:scroll时,它不会滚动; 以下是我的完整代码:

var lstEl=null;
var-cntr=-1;
$(文档).ready(函数(){
$('#btnSearch')。单击(函数(){
lstEl=null;
cntr=-1;
var vl=document.getElementById('searchTerm')。值;
$(“#bodyContainer”).removeHighlight();
$(“#bodyContainer”)。突出显示(vl);
});
$('#btnNext')。单击(函数(){
警报(cntr);
如果(lstEl==null){
lstEl=$(“#bodyContainer”).find('span.highlight');
如果(!lstEl | | lstEl.length==0){
lstEl=null;
返回;
}
}
如果(cntr0){
$(lstEl[0]).removeClass('current');
}
var elm=lstEl[cntr];
$(elm).addClass(“当前”);
}否则
警报(“已到达搜索结束!”);
});
$('#btnPrev')。单击(函数(){
警报(cntr);
如果(lstEl==null){
lstEl=$(“#bodyContainer”).find('span.highlight');
如果(!lstEl | | lstEl.length==0){
lstEl=null;
返回;
}
}
如果(cntr>0){
cntr-;
如果(cntr<第一层长度){
$(lstEl[cntr+1])。removeClass('current');
}
var elm=lstEl[cntr];
$(elm).addClass(“当前”);
}否则
警报(“搜索开始!”);
});
});
$(函数(){
//输入字段
var$input=$(“input[type='search']),
//清除按钮
$clearBtn=$(“按钮[data search='clear']),
//上一个按钮
$prevBtn=$(“按钮[data search='prev']),
//下一个按钮
$nextBtn=$(“按钮[data search='next']),
//要搜索的上下文
$content=$(“.content”),
//用于保存元素的jQuery对象
$results,
//将附加到当前对象的类
//聚焦元件
currentClass=“当前”,
//跳转的顶部偏移(搜索栏)
偏移量=50,
//聚焦元素的当前索引
currentIndex=0;
/**
*跳转到与currentIndex匹配的元素
*/
函数jumpTo(){
如果($results.length){
var位置,
$current=$results.eq(currentIndex);
$results.removeClass(currentClass);
如果($current.length){
$current.addClass(currentClass);
位置=$current.offset().top-offsetTop;
滚动到(0,位置);
}
}
}
/**
*跳转到与currentIndex匹配的元素
*/
函数jumpTo(){
如果($results.length){
var位置,
$current=$results.eq(currentIndex);
$results.removeClass(currentClass);
如果($current.length){
$current.addClass(currentClass);
位置=$current.offset().top-offsetTop;
滚动到(0,位置);
}
}
}
/**
*在中搜索输入的关键字
*输入时指定的上下文
*/
$input.on(“输入”,函数(){
var searchVal=this.value;
$content.unmark({
完成:函数(totalMatches){
$content.mark(searchVal{
separateWordSearch:false,
所有要素:正确,
完成:函数(totalMatches){
$results=$content.find(“标记”);
currentIndex=0;
跳到();
var tag=field.find(“[data tag=“”+关键字.toLowerCase()+”),
html=关键字;
tag.addClass('active');
如果(全部匹配){
html+=''+totalMatches+'';
}
tag.find('content').html(html);
}
});
}
});
});
/**
*清除搜索
*/
$clearBtn.on(“单击”,函数(){
$content.unmark();
$input.val(“”.focus();
});
/**
*下一个和上一个搜索跳转到
*/
$nextBtn.add($prevBtn).on(“单击”,函数()){
如果($results.length){
currentIndex+=$(this).is($prevBtn)?-1:1;
如果(当前索引<0){
currentIndex=$results.length-1;
}
如果(当前索引>$results.length-1){
currentIndex=0;
}
跳到();
}
});
});
.content{
溢出y:滚动;
}

搜索:
&达尔;
&uarr;
✖
比赛
Lorem ipsum dolor sit amet,是一位杰出的献身者。杜伊斯·尤兰科佩尔·奥奇


我不确定jQuery,但我在使用vanilla JS的scrollIntoView方法时遇到了同样的问题

const scrollIntoView = id => {
  const element = document.querySelector(id);
  if (element) {
    element.scrollIntoView({
      behavior: 'smooth',
      block: 'nearest',
    });
  }
};


通过使用
块:“最近的”
它相对于最近的可滚动父对象进行滚动。请包含允许我们重新创建问题的HTML表示。没有a的问题被认为是离题的。嘿,泰勒,我继续添加了完整的html代码,还尝试使用元素。scrollIntoView它比window工作得更好。scrollToget为元素设置dom节点引用。我很难做到这一点:(解决了!