首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scrollTo或react-scroll不适用于溢出

scrollTo或react-scroll不适用于溢出
EN

Stack Overflow用户
提问于 2021-09-16 03:14:36
回答 1查看 40关注 0票数 0

我正在尝试在我的react应用程序中实现点击滚动功能。我尝试使用react-scrollwindow.scrollIntoView,并使用带引用的window.scrollTo。当我的应用程序溢出时,这些都不起作用,所以我不得不删除它才能让它正常工作。

代码语言:javascript
复制
.App {
   height: 100vh;
   overflow-y: scroll; // removing this makes click to scroll work
}

我如何使用window.scrollTo

代码语言:javascript
复制
const scrollSection = useRef(null);

const goToSection = () => {
  window.scrollTO({
    top: scrollSection.current.offsetTop,
    behavior: "smooth"
});

和react-scroll:

代码语言:javascript
复制
 <Link to="firstSection" spy={true} smooth={true}>
   <li></li>
 </Link>

有没有办法让它和overflow一起工作,因为如果可能的话,我想保留overflow样式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-16 03:28:08

在溢出元素本身上调用它,而不是在窗口上调用。HTMLElements有一个类似的函数,叫做scroll()

代码语言:javascript
复制
document.querySelector("button").addEventListener("click", function(){
  let target = document.getElementById("scroll");
  document.querySelector("div").scroll({
    top: target.offsetTop,
    behavior: 'smooth'
  });
});
代码语言:javascript
复制
html, body {margin: 0}

div > p
{
  height: 100px;
}

div
{
  height: 100vh;
  overflow: auto;
}

#scroll
{
  height: 240px;
  background: red;
}
代码语言:javascript
复制
<div>
  <button>Scroll</button>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p>Hello</p>
  <p id="scroll">Scroll to me!</p>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69201915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档