2
respostas

[Dúvida] Preciso de ajuda para melhorar o projeto.

Boa tarde, gostaria de ajuda para melhorar esse projeto, tentei resolver por um bom tempo, mas infelizmente não consegui, vou deixar o link abaixo do projeto no git e o que gostaria de tentar realizar nos códigos:

https://github.com/LuDesigner/sorteador_de_n-meros

  1. Adicionar diferença de singular para plural (Reparei que quando gera somente 1 número, ele fica no plural, tenti ajustar o código para o singular, mas por algum motivo ele não muda, e quando muda, o plural fica singular também);

  2. Adicionar voz; (Tentei usar o que aprendi nos outros cursos para por voz na resposta final, mas ele também não executa no projeto, havia utilizaro no HTML o código e no CSS responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate:1.2});)

  3. Bloquear o botão sortear ( Consegui bloquear o input para não digitarem após sortear, porém, o botão mesmo parecendo desabilitado, funciona, tirando assim a função de reiniciar, gostaria de bloquear ele para somente funcionar a função reiniciar, eu cheguei tentar alguns códigos, como o document.getElementById('btn-sortear').removeAttribute("onclick"); e o botaoSortear.setAttribute("disabled", "true"); , mas não obtive sucesso.)

existe outras duvidas que gostaria de resolver, ainda estou trabalhando e tentando realizar sozinho para por o que aprendi em prática, como a responsividade, root no css, cores, e etc.., quem poder me ajudar fico agradecido, peço que responsa de forma separada as duvidas para não me confundir por favor, grato desde já.

2 respostas

Oi Luis, boa tarde!

Vou tentar te ajudar com as suas dúvidas de forma separada, conforme solicitado. Vamos lá:

  1. Adicionar diferença de singular para plural: Para ajustar o texto de singular para plural, você pode usar uma estrutura condicional para verificar a quantidade de números gerados e, com base nisso, modificar o texto exibido. Por exemplo:

    const quantidade = numeros.length; // Supondo que 'numeros' é o array com os números sorteados
    let mensagem = `Você sorteou ${quantidade} número${quantidade > 1 ? 's' : ''}.`;
    
    document.getElementById('resultado').innerText = mensagem;
    

    Nesse exemplo, a mensagem será adaptada para singular ou plural dependendo da quantidade de números sorteados.

  2. Adicionar voz: Para adicionar voz usando a biblioteca responsiveVoice, você precisa garantir que o script está corretamente carregado e que a função responsiveVoice.speak é chamada com os parâmetros corretos. Veja um exemplo de como fazer isso:

    <script src="https://code.responsivevoice.org/responsivevoice.js"></script>
    
    const texto = "Sua mensagem aqui";
    responsiveVoice.speak(texto, 'Brazilian Portuguese Female', { rate: 1.2 });
    

    Certifique-se de que o script está sendo carregado antes de chamar a função responsiveVoice.speak. Você pode colocar a chamada da função dentro de um evento, como o clique de um botão, para garantir que o script já foi carregado.

  3. Bloquear o botão sortear: Para bloquear o botão "sortear" após o clique, você pode desabilitá-lo e remover o evento de clique. Aqui está um exemplo de como fazer isso:

    const botaoSortear = document.getElementById('btn-sortear');
    
    botaoSortear.addEventListener('click', function() {
        // Sua lógica de sorteio aqui
    
        // Desabilitar o botão após o sorteio
        botaoSortear.setAttribute('disabled', 'true');
        botaoSortear.removeEventListener('click', arguments.callee);
    });
    

    Nesse exemplo, o botão é desabilitado e o evento de clique é removido após o sorteio. Isso deve impedir que o botão funcione até que a página seja recarregada ou que você reabilite o botão manualmente.

Espero ter ajudado e bons estudos!

Boa noite, o primeiro não entendi e não consegui aplicar, eu tentei fazer algo similar antes, mas não funcionou porque esta assim no código:

    let resultado = document.getElementById('resultado');
    resultado.innerHTML = `<label class="texto__paragrafo"> ${sorteados} foram os números sorteados</label>`;
    alterarStatusBotao();

a segunda alternativa também não funcionou, eu já havia feito com aqueles mesmos códigos e igual o curso também, tanto que no projeto desafio funcionou, mas nesse não.


o do botão também não entendi, porque na formula tem if :

// alterar botão Status reiniciar:
function alterarStatusBotao() {
    let botao = document.getElementById('btn-reiniciar');
    let botaoSortear = document.getElementById('btn-sortear');

    if (botao.classList.contains('container__botao-desabilitado')) {
        botao.classList.remove('container__botao-desabilitado');
        botao.classList.add('container__botao');

        botaoSortear.classList.remove('container__botao');
        botaoSortear.classList.add('container__botao-desabilitado');

        var input = document.querySelector("#quantidade");
        input.disabled = true;

        var input = document.querySelector("#de");
        input.disabled = true;

        var input = document.querySelector("#ate");
        input.disabled = true;

        // botaoSortear.setAttribute("disabled", "true");
        // document.getElementById('btn-sortear').removeAttribute("onclick");

    } else {
        botao.classList.remove('container__botao');
        botao.classList.add('container__botao-desabilitado');

        botaoSortear.classList.remove('container__botao-desabilitado');
        botaoSortear.classList.add('container__botao');

        var input = document.querySelector("#quantidade");
        input.disabled = false;

        var input = document.querySelector("#de");
        input.disabled = false;

        var input = document.querySelector("#ate");
        input.disabled = false;

    }
}

por favor se poder me orientar com os códigos que usei, dessa forma não entendi nada e não consegui aplicar no código, fica difícil saber onde aplicar e algumas sugestões eu já apliquei.