Вот не получилось использовать offsetTop/pixelTop и тп., т.к. если в экспрешн элемента пытаться подставить нечто связанное с этим же элементом — при скролинге оный экспрешн впадает в жёсткую рекурсию и скрывается с области видимости с впечетляющей скоростью) Потому и храню значение отступа не в слое реципиенте, а куки тут как нельзя кстати и дают к тому же бонус в виде восстановления позиции при перезагрузке. Вот как то так.
Если написать как в первом методе:
_top:expression(eval(document.documentElement.scrollTop));
то при скролинге слой опять притянется к верхней границе области просмотра браузера. Тут фича как раз в сохранении позиции слоя после перетаскивания.
По сути — да, top оказался камнем преткновения, вот только обычный экспрешн переставал работать после передвижения слоя, поэтому пришлось искать способ чтобы его оживить. В итоге позиция при перетаскивании писалась в куки, а потом в экспрешене вызывалась функция которая её оттуда при скролинге забирала и позиция восстанавливалась.
Там описан метод не применимый к drag-and-drop, слой остаётся фиксированным всегда на одном месте. В вышеприведённым описании даже после перетаскивания слой остаётся фиксированным. К тому же требовалась большая независимость от макетов дизайна, без распорок по 100% и пр.
Только для IE, в нём position:fixed не работает. Drag-and-drop для FF, Opera и прочих сделан через fixed, для IE через absolute, в коде это видно по _position:absolute, свойство сработает только для IE.
Тут больше не в дёрганиях проблема была, а с сохранением фиксации после перетаскивания. Согласен, то что слой дёргается меньшее зло чем отказ от доктайпа)
Это только пример реализации задачи, другого решения я к сожалению не нашёл, возможно он существует. Но в итоге слой и перетащить можно и с фиксацией проблем нет.
Спасибо за ёмкий и познавательный коммент)
А вот позиция в куках действительно для восстановления положения при перезагрузке и переходам по страницам, достаточно только прописать соответствующие top и left.
Как пример открыв файл вывода статистики, в упомянутом 2z Project, насчитал как раз 10 запросов, некоторые к слову в цикле вызывались. Это только один файл на статистику, глубже ковыряться уже не хочется.
_top:expression(eval(document.documentElement.scrollTop));
то при скролинге слой опять притянется к верхней границе области просмотра браузера. Тут фича как раз в сохранении позиции слоя после перетаскивания.
В IE7 тоже работает но дёргается при скроле.
З.Ы. спасибо за ссылки, прочту.
А вот позиция в куках действительно для восстановления положения при перезагрузке и переходам по страницам, достаточно только прописать соответствующие top и left.