Qual é o método (moderno) correto para tocar no evento de redimensionamento de janela que funciona no Firefox, WebKit e Internet Explorer?
E você pode ativar / desativar as duas barras de rolagem?
javascript
jquery
cross-browser
resize
BuddyJoe
fonte
fonte
window.dispatchEvent(new Event('resize'));
stackoverflow.com/questions/1818474/…Respostas:
O jQuery possui um método interno para isso:
Por uma questão de responsividade da interface do usuário, considere usar um setTimeout para chamar seu código somente após um número de milissegundos, conforme mostrado no exemplo a seguir, inspirado por isso :
fonte
$('.button').on({ click: function(){ /* your code */ $(window).trigger('resize') })
fonte
Aqui está a maneira não-jQuery de acessar o evento de redimensionamento:
Funciona em todos os navegadores modernos. Ele faz não acelerador qualquer coisa para você. Aqui está um exemplo disso em ação.
fonte
Desculpe abrir um tópico antigo, mas se alguém não quiser usar o jQuery, você pode usar o seguinte:
fonte
Como você está aberto ao jQuery, este plugin parece funcionar.
fonte
Usando o jQuery 1.9.1, descobri que, embora tecnicamente idêntico) *, isso não funcionava no IE10 (mas no Firefox):
enquanto isso funcionava nos dois navegadores:
Edit :)
* Na verdade, não é tecnicamente idêntico, conforme observado e explicado nos comentários de WraithKenny e Henry Blyth .
fonte
.resize()
A.bind('resize')
? Ou adicionar a função anônima que eu estou pensando que é o segundo.)adjustSize
método perde seu contexto dethis
, enquanto a segunda chamadaCmsContent.adjustSize()
preservathis
, iethis === CmsContent
. Se aCmsContent
instância for necessária noadjustSize
método, o primeiro caso falhará. O segundo caso funcionará para todos os tipos de chamadas de funções; portanto, é recomendável sempre passar uma função anônima.jQuery
fornece$(window).resize()
função por padrão:fonte
Considero que o plugin jQuery "evento de redimensionamento jQuery" é a melhor solução para isso, pois ele cuida da limitação do evento para que ele funcione da mesma forma em todos os navegadores. É semelhante à resposta de Andrews, mas é melhor, pois você pode conectar o evento de redimensionamento a elementos / seletores específicos, bem como a janela inteira. Abre novas possibilidades para escrever código limpo.
O plugin está disponível aqui
Existem problemas de desempenho se você adicionar muitos ouvintes, mas para a maioria dos casos de uso é perfeito.
fonte
Eu acho que você deve adicionar mais controle a isso:
fonte
espero que ajude no jQuery
defina uma função primeiro, se houver uma função existente, pule para a próxima etapa.
redimensionar o navegador use como estes.
fonte
Além das funções de redimensionamento da janela mencionadas, é importante entender que os eventos de redimensionamento são acionados muito se usados sem que os eventos sejam reduzidos.
Paul Irish tem uma excelente função que rebaixa o redimensionamento de chamadas. Muito recomendado para usar. Funciona em vários navegadores. Testei no IE8 outro dia e estava tudo bem.
http://www.paulirish.com/2009/throttled-smartresize-jquery-event-handler/
Verifique a demonstração para ver a diferença.
Aqui está a função de completude.
fonte