2012-02-27 1 views
2

Просто хочу знать, можно ли сделать элемент игнорировать любые обертки с позицией: относительный.Возможно ли, чтобы элемент игнорировал позицию: относительный?

Я создаю элементы с jQuery, который помещается с абсолютной позицией и должен работать независимо от того, как пользователь размещает свои элементы.

Я не могу поместить их в тег BODY, потому что мне нужно разместить их внутри обертки вместе с полем ввода.

Любые идеи?

ОБНОВЛЕНИЕ: Обнаружено обходное решение. Я использовал jQuery .offset(), который получает позицию документа. Отредактировано его .position(), которое получает позицию элемента внутри родителя. Теперь он работает

+3

Нет, я так не думаю. Популярным обходным решением является использование jQuery для вырезания и вставки элемента в местоположение за пределами обертки. –

+0

Почему вы не добавляете оболочку в тело, содержащую ваш элемент и поле ввода? Разве что-то не хватает? – Alex

+0

@Alex Thomas: У оболочки есть «позиция: относительная», и ее можно перемещать, неся вместе с ней. – BoltClock

ответ

0

Возможно, я что-то упустил, но вы можете следить за событием изменения размера и затем переставлять свой элемент. http://api.jquery.com/resize/

+0

Это dosnt имеет какое-либо отношение к размеру. Проблема в том, что у меня есть форма, а внутри есть поля ввода. Когда пользователь нажимает на поле ввода, я помещаю окно ошибки в поле ввода. Позиция вычисляется с позицией входной камеры, а затем помещается в угол. Но если у пользователя есть форма с относительным положением, то ошибки помещаются неправильно. – Lasse

+2

@QuakeDK: Можете ли вы добавить свой код к своему вопросу? – BoltClock

+0

@BoltClock: Я согласен с QuakeDK, я думаю, нам нужно будет увидеть пример сайта и/или код. – Alex

0

продуманным бы установить левый и верхние атрибуты, как если бы не было положение: Относительные-родители и добавить позволяет сказать, что класс «body_pos»:

$(function() { 
    $('.body_pos').each(function() { 
    var offset = $(this).offset(); 
    $(this).css({ 
     left : '-='+offset.left, 
     top : '-='+offset.top 
    }); 
    }); 
}); 

Пример: Вы установили левый : 50px, элемент располагается слева: 100px в документе, тогда он будет располагаться слева: -50px.

Он должен предоставить желаемый эффект, если он не расположен внутри поля: 0 автоматический ящик, и окно изменено. Я полагаю.

+0

Я не уверен, что это то, что у вас есть, но я попытался удалить позицию: абсолютный, и использовать только левый, верхний, но затем он не влияет на элемент? – Lasse

+0

Это умное обходное решение, но будет работать только в том случае, если 'overflow' родительского контейнера не установлен в' hidden'. –

+0

Собирался предложить 'offset()'. является ли функция 'position()' и переполнением элементов? @Pekka – Alex

Смежные вопросы