Como fechar modal HTML?

Tenho um modal que fecha (via função javascript) após clique no botão type="submit", isso ta ok, mas quero que o modal feche tbm se o usuário clicar fora da área dele. Como fazer isso?

1 curtida

Como vc implementou essa modal?

Sim. Só falta essa parte de fechar clicando fora dela.

Eu perguntei como esta modal foi implementada. Tipo, vc criou ela do zero ou está usando alguma coisa pronta?

Ah sim, desculpa. Do zero, ainda tô no básico da linguagem.

Posta o codigo da sua modal pra gente ver

HTML:

<!-- modal lançamento -->
	<div class="modal-lancamento">
		<input type="submit" value="Lançar" class="inputs btn" onclick="fecharModalLancamento()">
	</div>

CSS:

.modal-lancamento{
display: none;
width: 90%;
height: 300px;
background-color: #fff;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
border-radius: 10px;
box-shadow: 1px 1px 20px 1px #aaa;

}

Javascript:

// função abrir modal lançamento

function abrirModalLancamento(){
document.getElementsByClassName(‘modal-lancamento’)[0].style.display = ‘block’;
}

// função fechar modal lançamento
function fecharModalLancamento(){
document.getElementsByClassName(‘modal-lancamento’)[0].style.display = ‘none’;
}

Olá Daniel, beleza?

veja se atende ao que você estava pensando.

//verifica todos os cliques no que ocorre no seu documento
    document.addEventListener('click', function(e){            
        //verifica se o alvo do seu clique está sendo o modal ou um botão
        if(e.target != document.getElementsByClassName('modal-lancamento')[0] && e.target != document.getElementsByClassName('btn')[0]){
            fecharModalLancamento();
        }
    })
    
    function abrirModalLancamento(){
        document.getElementsByClassName('modal-lancamento')[0].style.display = 'block';
    }
    
    
    // função fechar modal lançamento   
    function fecharModalLancamento(){
        document.getElementsByClassName('modal-lancamento')[0].style.display = 'none';
    }
</script>
2 curtidas

Muito legal velho. Valeu!