Existe alguma maneira com o jQuery ou JavaScript para acionar uma função quando o usuário termina para redimensionar a janela do navegador?
Em outros termos:
- Posso detectar o evento de mouse up quando o usuário está redimensionando a janela do navegador? De outra forma:
- Posso detectar quando uma operação de redimensionamento de janela é concluída?
No momento, só consigo acionar um evento quando o usuário começa a redimensionar a janela com jQuery
javascript
jquery
aneuryzm
fonte
fonte
Respostas:
Você pode usar
.resize()
para obter sempre que a largura / altura realmente mudar, assim:Você pode ver uma demonstração funcional aqui , ela pega os novos valores de altura / largura e os atualiza na página para você ver. Lembre-se de que o evento realmente não começa ou termina , apenas "acontece" quando ocorre um redimensionamento ... não há nada a dizer que outro não acontecerá.
Editar: pelos comentários, parece que você deseja algo como um evento "on-end", a solução que você encontrou faz isso, com algumas exceções (você não pode distinguir entre um mouse para cima e uma pausa de uma maneira entre navegadores, o mesmo para um final versus uma pausa ). Você pode criar esse evento para torná-lo um pouco mais limpo, assim:
Você pode ter este arquivo base em algum lugar, o que você quiser fazer ... então você pode vincular ao novo
resizeEnd
evento que está desencadeando, assim:Você pode ver uma demonstração de trabalho desta abordagem aqui
fonte
Isto pode ser conseguido com o onresize propriedade da interface GlobalEventHandlers em JavaScript, através da atribuição de uma função para a onresize propriedade, assim:
window.onresize = functionRef;
O seguinte trecho de código demonstra isso, registrando o console innerWidth e innerHeight da janela sempre que ela é redimensionada. (O evento resize é acionado após o redimensionamento da janela)
fonte
Outra maneira de fazer isso, usando apenas JavaScript, seria o seguinte:
Isso é acionado toda vez que o tamanho muda, como a outra resposta.
functionName
é o nome da função que está sendo executada quando a janela é redimensionada (os colchetes no final não são necessários).fonte
Se você quiser verificar apenas quando a rolagem terminar, no Vanilla JS, poderá encontrar uma solução como esta:
Super super compacto
Todas as 3 combinações possíveis juntas (ES6)
fonte