无论如何使用javascript自动滚动到具有某个div类的第一个可见元素?
谢谢!
答案 0 :(得分:19)
你应该能够使用这样的东西:
$('html, body').animate({
scrollTop: $('.class:visible:first').offset().top
}, 1000);
答案 1 :(得分:1)
可以使用普通JS轻松完成:
const items = container.getElementsByClassName('active');
const visible = [...items].filter((el) => {
// jQuery-like :visible selector
return !!( el.offsetWidth || el.offsetHeight || el.getClientRects().length );
});
if (visible.length > 0) {
container.scrollTo({
top: items[0].offsetTop,
behavior: 'smooth'
});
}
这假定:
container
是可滚动的容器,如果要滚动整个页面,可以用document
和window
替换。active
类名的第一项。behavior: 'smooth'
配置。https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTo