Stephanie, esto es solo para aclarar lo que ha demostrado jAndy, con un poco de mi propia respuesta. Pero, siendo todavía relativamente nuevo en jQuery, puedo relacionarme con tu confusión. Desmontemos el código de Andy y respondamos a sus comentarios.
También estoy confundido sobre cómo esto se incorpora en mi código anterior, ¿dónde lo pongo y cuál es $ elem. y cuál es #someelement_id
En el código de jAndy, el elemento $ es el elemento que está tratando de ubicar. Él está usando #someelement_id
solo para hacer su ejemplo genérico. Tan específico de su código, su
var $elem = $('#someelement_id');
se convertiría en
var $elem = $('#sm');
en el código. Todo lo que hace allí es almacenar la referencia del elemento (objeto) en la variable $elem
. No hay nada lujoso allí, no creo. No estoy seguro de por qué él precede $
en el nombre de la variable ...? Creo que var elem = $('#sm');
funcionaría igual, a menos que me falta algo. Entonces, eso solo te da el elemento con el que quieres trabajar.
¿estoy poniendo valores dentro de los elementos de posición()? Por ejemplo, posición (10px) .top
No. No, si su objetivo es mantener el elemento completamente posicionado en su posición actual. Si separamos esa línea de su código, $elem.position()
devolverá un objeto que contiene las propiedades top
y left
. Puede leer sobre el método de posición aquí jQuery API position (Consulte jQuery API offset también porque proporciona información diferente y le permite proporcionar coordenadas para una nueva posición para el elemento). Por lo que puedo decir, como dice jAndy en su respuesta, su código establecerá la posición absoluta del elemento en su ubicación actual, por lo tanto, lo mantendrá en su lugar.
No creo que esto sea lo que desea si realmente desea mover un elemento de su ubicación actual a otra ubicación. Para eso, estarías configurando la parte superior e izquierda según la respuesta de Matt Asbury, o podrías usar alguna combinación de las dos respuestas si quisieras mover el elemento a una nueva posición relativa a su ubicación actual.Por ejemplo,
$elem.css({
position: 'absolute',
top: $elem.position().top + 10,
left: $elem.position().left + 10
});
O, con jQuery API offset, y la combinación de los dos, creo que se podría hacer algo como:
var newCoords = {
top: $elem.position().top + 10,
left: $elem.position().left + 10
};
$elem.offset(newCoords);
No estoy seguro de que es el enfoque de "mejor".
El enlace proporcionado por Nikkelman también es bueno, pero puede que haya muchas cosas por descubrir si es nuevo en jQuery.
Otra cosa que he notado, y tal vez te dejó estas cosas porque parecía obvio, pero por si acaso:
- Es necesario incluir jquery.js desde algún lugar, a medida que han incluido su slidemenu js.
- Y generalmente tendrías tu código jQuery envuelto en un bloque
$(document).ready(function() {...});
, pero esto no siempre es necesario.
¡Espero que esto ayude y no acabo de enlodar las aguas para usted!
Por qué necesita el estilo de su elemento con jQuery ? ¿Por qué no CSS? '#sm {position: fixed; arriba: 10px; izquierda: 10px; } ' –