evento jQuery para detectar quando a posição de elemento muda

votos
25

Gostaria de saber se existe um evento de jQuery que eu possa usar para determinar quando um determinado DIV toppropriedade mudou.

Por exemplo, eu tenho conteúdo invisível acima de um DIV. Quando esse conteúdo se torna visível, o DIV é deslocada para baixo. Gostaria de capturar esse evento e, em seguida, usar a offset()função para obter o X / Y coordena.

Publicado 10/12/2008 em 04:32
fonte usuário
Em outras línguas...                            


3 respostas

votos
6

A resposta fácil é que não há eventos no DOM para detectar atualizações de layout.

Você tem algumas opções a forma como eu vejo:

  1. Poll, desagradável, mas pode funcionar, dependendo de suas necessidades de frequência de atualização.

  2. Tocar em qualquer evento faz com que o DIV invisível para alterar o tamanho e fazer o que você precisa fazer no que manipulador


Vou me corrigir.

Dei uma olhada no DOM e notou o evento DOMAttrModified e encontrei este JQuery Plug-In que você pode ser capaz de aproveitar para fazer o que quiser.

Como o artigo menciona, ele funciona muito bem no IE e Firefox, mas parece ter problemas em WebKit.

Respondeu 10/12/2008 em 04:46
fonte usuário

votos
0

I thiiink você deve ser capaz de fazer:

$(document).ready( function (){
  $("#mydiv").bind("movestart", function (){ ...remember start position... });
  $("#mydiv").bind("moveend", function (){ ...calculate offsets etc... });
});
Respondeu 10/12/2008 em 04:40
fonte usuário

votos
-2
$("#someId").resize(function () {

// your code

});
Respondeu 06/05/2015 em 01:30
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more