Quando as pessoas postam gifs animados, eles tocam uma e outra e outra e outra e outra vez e…
O Twitter me dá uma maneira de parar a animação. O Slack me permite colapsar a imagem para que eu não a veja mais. Por favor, por favor, Discourse, dê-me algo comparável.
É uma pena que os navegadores tenham retirado o suporte para esc para interromper todas as animações de página em GIFs. As pessoas esquecem… mas isso realmente era uma coisa.
Ótima sugestão de recurso, @ganncamp, obrigado. Isso já foi feito (commit) e implantado aqui no meta. Clicar na imagem pausará e, em seguida, retomar a animação. Devido às limitações de segurança do navegador, a pausa mostra apenas o primeiro quadro da imagem; não é possível mostrar o quadro no momento em que foi clicado.
Talvez possamos adicionar uma pequena sobreposição de “pausado”, para que as pessoas saibam o que aconteceu. (um II translúcido no canto inferior direito?)
Acredito (embora não tenha certeza) que isso só funcione depois que o GIF for totalmente carregado. Alguns GIFs animados podem demorar um pouco para carregar. Você poderia testar, talvez, localmente usando limitação de velocidade para verificar se isso pausa mesmo que o GIF não tenha sido totalmente carregado?
Ele não pausava. Tentei em dois navegadores.
Vim a este tópico porque havia lido o outro dia.
Cliquei no GIF STOP IT e ele pausou.
Voltei ao meu post e agora ele pausa.
Obrigado, Geoff. A razão técnica pela qual o seu upload não funciona é que isso atualmente só funciona para uploads que estão no banco de dados. O seu upload acima é uma URL do Giphy e não possui um registro de upload local. Não podemos estender isso facilmente para imagens animadas de outras URLs porque não temos certeza se um recurso em uma URL específica é uma imagem animada ou uma imagem estática regular.
Podemos fazer uma suposição fundamentada, por exemplo, para URLs do Giphy, mas, a menos que o upload seja local e processado, não saberemos com certeza.
Atualização: ah, e agora o upload do Giphy na sua mensagem acima foi baixado localmente e a pausa funciona.
A ação de pausa funciona, mas o canvas não consegue ler/desenhar o primeiro quadro até que o GIF tenha sido totalmente carregado. Não acho que possamos corrigir isso adequadamente, então adicionei uma cor de fundo sutil ao elemento canvas, que será exibido assim:
Sim, @pmusaraj, vou reabrir isso. Provavelmente precisamos de um tratamento melhor para casos em que um GIF animado é exibido em lightbox, pois atualmente é muito desconfortável.
Não tenho certeza do que é o mais adequado a fazer? Não usar lightbox para GIFs animados? Ter áreas de clique diferentes para “pausar” versus “tamanho completo” nesses casos?
Acho que, tecnicamente, você poderia ter uma animação gigantesca para mostrar.
Talvez apenas desativemos o lightbox por enquanto e vejamos se alguém reclama? Concordo totalmente que geralmente é uma má ideia e inútil para gifs animados.