Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

179
Visualizações
React.js: ¿Cómo puedo saltar a diferentes enlaces sin problemas cuando hago clic en ellos?

Tengo una barra de navegación con varios enlaces y me gustaría poder llevar a un visitante al componente dedicado sin problemas al hacer clic en uno de los elementos de navegación. Todos los componentes están debajo de la barra de navegación mientras me desplazo por la aplicación. Sé cómo se puede hacer simplemente con HTML y CSS cuando se crea un sitio web estático, pero como traté de hacer lo mismo en React, obviamente no funcionó. ¿Es posible hacerlo solo con React, sin usar ningún paquete (React Router, react-scroll, etc.)? Si es así, ¿cómo puedo hacerlo?

Para referencia solo con HTML y CSS: https://codesandbox.io/s/objective-ganguly-fzqnrz?file=/index.html

Esto es lo que me gustaría poder hacer, pero con una transición suave y sin paquetes. Aquí está el código:

Navigation.js (los href son solo marcadores de posición para ilustrar la idea)

 const Navigation = () => { return ( <header> <nav> <ul> <li> <a href="#home">Home</a> </li> <li> <a href="#projects">Projects</a> </li> <li> <a href="#contact">Contact</a> </li> </ul> </nav> </header> ); }; export default Navigation;

Acerca de.js

 const About = () => { return ( <div> <div> <p> {/* Content here... */} </p> </div> </div> ); }; export default About;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No tiene nada que ver con React , es solo el comportamiento de html y css que debes hacer algunos ajustes para ver el comportamiento fluido, algo como esto:

 *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } /* here is what you need to add to your code */ html { scroll-behavior: smooth; } #navigation { background-color: rgb(101, 255, 55); } #navbar { margin: 0 auto; height: 60px; } ul { list-style-type: none; overflow: hidden; float: right; } li { float: left; font-size: 20px; margin-left: 10px; } li a { display: block; color: #000; text-align: center; padding: 18px 18px; border-radius: 20px; text-decoration: none; } li a:hover { color: #232cfa; } #content { width: 100%; height: 500px; background-color: aqua; } #content-2 { height: 200px; background-color: salmon; } #footer { height: 100px; background-color: aquamarine; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Navigation Redirect</title> </head> <body> <header id="navigation"> <nav id="navbar"> <ul> <li> <a href="#content">Content 1</a> </li> <li> <a href="#content-2">Content 2</a> </li> <li> <a href="#footer">Footer</a> </li> </ul> </nav> </header> <div id="content"> <h1>Content</h1> </div> <div id="content-2"> <h2>Content 2</h2> </div> <footer id="footer"> <h3>Footer</h3> </footer> </body> </html>

si desea ver el código de sandbox, consulte este enlace: https://codesandbox.io/s/festive-cdn-t2jzgf?file=/index.html:0-844

y si quieres trabajar con elements ref en React puedes usarlo de esta manera

 element.scrollIntoView({behavior: "smooth"});

Según su estructura de archivos, esto podría ser un poco más difícil de pasar las referencias a sus componentes de Navigation , por lo que sugiero ir con la forma CSS

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda