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

180
Visualizações
Detectar cuando el usuario se ha desplazado por un texto para habilitar un botón

¿Cómo implementar una función de "detección de desplazamiento" usando React? Me gustaría presentarle al usuario un div con un mensaje determinado y habilitar una casilla de verificación solo una vez que el usuario se haya desplazado por ella. Esta es mi implementación actual, que no funciona.

 function Disclaimer({ text, checkboxText }) {
 const divRef = useRef();
 const [userHasReviewed, setUserHasReviewed] = useState(false);

 const scrollTracker = () => {
 if (divRef.current) {
 const { scrollTop, scrollHeight, clientHeight } =
 divRef.current;
 if (scrollTop + clientHeight === scrollHeight) {
 setUserHasReviewed(true);
 }
 }
 };

 return (
 <div>
 <div
 ref={divRef}
 onScroll={() => scrollTracker()}
 >
 {text}
 </div>
 <div>
 <Checkbox
 label={checkboxText}
 disabled={!userHasReviewed}
 />
 </div>
 </div>
 );
}

He colocado puntos de depuración dentro de la función scrollTracker , pero el depurador nunca ingresa a la función. Creo que esto se debe a que el texto no es lo suficientemente grande como para desbordarse y requerir el espacio/acción de desplazamiento. En este caso, ¿cómo puedo detectar esto automáticamente para que userHasReviewed se establezca en true automáticamente?

almost 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Usaria el selector hover de css para habilitar el boton

almost 4 years ago · Santiago Trujillo Relatório

0

Para detectar cuándo un usuario se ha desplazado por un texto y habilitar un botón en consecuencia en una página web, puedes utilizar JavaScript/jQuery. Aquí tienes un ejemplo de cómo lograrlo:

<!DOCTYPE html>
<html>
<head>
    <title>Detención de Desplazamiento de Texto</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
    <div id="content">
        <p>Este es un texto largo. Desplázate hacia abajo para habilitar el botón.</p>
    </div>
    <button id="myButton" disabled>Botón Deshabilitado</button>
    <script src="script.js"></script>
</body>
</html>
$(document).ready(function() {
    const $button = $("#myButton");
    const $content = $("#content");

    let usuarioSeDesplazo = false;

    // Detecta el evento de desplazamiento en el contenido
    $content.on("scroll", function() {
        usuarioSeDesplazo = true;
        // Habilita el botón si el usuario se ha desplazado
        $button.prop("disabled", false);
    });
});


Este código utiliza jQuery para detectar el evento de desplazamiento en el elemento #content. Cuando el usuario se desplaza por el contenido, se habilita el botón con la id myButton. Asegúrate de incluir jQuery en tu página antes de ejecutar este código.


almost 4 years ago · Santiago Trujillo 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