Стефани, это просто для того, чтобы уточнить, что продемонстрировала Джэнди, с небольшим количеством моего собственного ответа. Но, будучи еще относительно новым для jQuery, я могу относиться к вашей путанице. Давайте разберем код jAndy и ответим на ваши комментарии.
Меня также смущает, как это включается в мой код выше, куда я его положу и что такое $ elem. и который #someelement_id
В коде jAndy $ elem - это элемент, который вы пытаетесь позиционировать. Он использует #someelement_id
только для того, чтобы сделать его пример общим. Так специфично для вашего кода, его
var $elem = $('#someelement_id');
станет
var $elem = $('#sm');
в вашем коде. Все, что он делает там - сохраняет ссылку на элемент (объект) в переменную $elem
. Ничего особенного там я не думаю. Не уверен, почему он добавляет $
к имени переменной ...? Я считаю, что var elem = $('#sm');
будет работать так же, если я что-то упустил. Таким образом, вы получаете элемент, над которым хотите работать.
помещаю ли я значения в элементы position ()? Например, позиция (10 пикселей) .top
Нет. Нет, если ваша цель состоит в том, чтобы удерживать элемент абсолютно в своем текущем положении. Если мы разберем эту строку его кода, $elem.position()
вернет объект, который содержит свойства top
и left
. Вы можете прочитать о методе позиции здесь jQuery API position (также ознакомьтесь с jQuery API offset , поскольку он предоставляет различную информацию и позволяет указывать координаты для новой позиции для элемента) , Так что, насколько я могу судить, как говорит jAndy в своем ответе, его код установит абсолютное положение элемента в его текущем местоположении, следовательно, сохранив его на месте.
Не думаю, что это то, что вам нужно, если вы действительно хотите переместить элемент из его текущего места в другое место. Для этого вы должны установить верхнюю и левую стороны в ответе Мэтта Эсбери или использовать комбинацию двух ответов, если хотите переместить элемент на новую позицию относительно его текущего местоположения. Например,
$elem.css({
position: 'absolute',
top: $elem.position().top + 10,
left: $elem.position().left + 10
});
Или с jQuery API смещением и объединением этих двух, я думаю, вы могли бы сделать что-то вроде:
var newCoords = {
top: $elem.position().top + 10,
left: $elem.position().left + 10
};
$elem.offset(newCoords);
Не уверен, какой подход лучше.
Ссылка, предоставленная Nikkelman, также хороша, но, если вы новичок в jQuery, вам может многое на нее помочь.
Еще одна вещь, которую я заметил , и, возможно, вы пропустили эти вещи, потому что они казались очевидными, но на всякий случай:
- Вам нужно откуда-то включить jQuery.js, так как вы включили слайдмену js.
- И обычно ваш код jQuery будет заключен в блок
$(document).ready(function() {...});
, но это не всегда необходимо.
Надеюсь, это поможет, и я не просто замутил тебя!