.offset([coordinates])
O método define as coordenadas de um elemento, mas apenas em relação ao documento. Então, como posso definir coordenadas de um elemento, mas em relação ao pai?
Descobri que o .position()
método obtém apenas valores "superiores, esquerdos" em relação ao pai, mas não define nenhum valor.
Eu tentei com
$("#mydiv").css({top: 200, left: 200});
mas não funciona.
$("#mydiv").css({top: '200px', left: '200px', position:'absolute'});
<- bom$("#mydiv").css({top: '200', left: '200', position:'absolute'});
<- ruim. Aparentemente, se os valores de posição são cadeias , você deve incluir as unidades ou elas não terão efeito.fonte
Você pode tentar o método .position da interface do usuário do jQuery .
Verifique a demonstração de trabalho.
fonte
Descobri que se o valor passado é um tipo de string, ele deve ser seguido por 'px' (ou seja, 90 px), onde se o valor for um número inteiro, ele acrescentará o px automaticamente. as propriedades de largura e altura são mais tolerantes (qualquer um dos tipos funciona).
fonte
Dinâmico de deslocamento de código para página dinâmica
fonte
Atualizando minha memória ao definir a posição, estou chegando tão tarde que não sei se mais alguém a verá, mas -
Eu não gosto de definir a posição usando
css()
, embora muitas vezes seja bom. Acho que a melhor aposta é usar oposition()
setter da jQuery UI, conforme observado pelo xdazz. No entanto, se a interface do usuário do jQuery não for, por algum motivo, uma opção (mas o jQuery for), prefiro o seguinte:Isso tem a vantagem de não definir arbitrariamente
$div
o pai de um posicionamento relativo (e se$div
o pai fosse, ele próprio, absoluto posicionado dentro de outra coisa?). Eu acho que o único grande caso extremo é se$div
não temoffsetParent
, não tenho certeza se ele iria voltardocument
,null
ou algo completamente diferente.offsetParent
está disponível desde o jQuery 1.2.6, em 2008, então essa técnica funciona agora e quando a pergunta original foi feita.fonte
Use a
offset()
função dejQuery
. Aqui seria:fonte