Абсолютная позиция + манипулирование полем может сделать хороший трюк, если вы не укажете left
/ top
значения.
Какой трюк?
Элемент с абсолютной позицией, но без left
/ top
будет отображаться в той же позиции, в которой будет находиться статический элемент, тогда как margin-left
/ margin-top
будет добавлять к этому положение.
http://jsfiddle.net/e6PaE/1/
В целом, я ценю, что вы не упоминаете статическую позицию в качестве опции - анимация такого элемента может привести к ненужному перекомпонованию макета, что является основным недостатком анимации DOM / timeout.
Среди опций, которые вы рассматриваете, я думаю, что наиболее эффективным является фоновый вариант. Но оно имеет ограниченное применение, так как вы можете перемещать только графический контент. Так что я бы пошел на вариант № 1.