2010-10-08 1 views
1

Итак, я вижу, что происходит. У меня есть изображение, оно масштабируется от центра, а затем оно подрывается исходным позиционированием, заданным им css.Использование эффекта. («Шкала»): сохранение изображения на месте и не перемещение

То, что я думал, что могу сделать, - это масштабировать его, а затем поместить его соответствующим образом через .css, чтобы избежать рывка ... чтобы объект стал на месте.

Не происходит. В любое время, когда я пытаюсь увидеть центр, масштабируемый элемент, он «возвращается» к исходной позиции x/y из-за масштаба.

Что бы я хотел, это масштабировать изображение вверх или вниз от его центральной точки и держать его там, где оно заканчивается после масштабирования.

Вот простой код, который я до сих пор:

$("#cs_house").effect("scale", {percent:120}, 250); 
$("#cs_house").fadeTo(10,1); 
$("#cs_house").css({'top':28+'px','left':10+'px'}); 

поэтому этот фрагмент масштабируется изображение с идентификатором cs_house, а затем затухает его обратно. Последняя строка - это то, что я использовал, чтобы сохранить ее на месте, но она прибегает к масштабированию слева вверху. ?

+0

Каков атрибут 'position' для изображения и контейнера, в котором он находится? – Xion

+0

Холдинг относительный, и элемент является абсолютным. Я только что прочитал, что «Origin: ['middle', 'center']" предназначен только для show() и hide(), чтобы что-то объяснить. Тем не менее, я работаю над заменой src attr на двухэтапный анимированный gif. ИЛИ, притворяя увядание на 100%, чтобы использовать шоу, и я приближаюсь. Должен быть лучшим способом, хотя! – Billy

ответ

1

Первый: Я хотел бы рекомендовать положение держателя абсолютным и дать ему ширину, соответствующую ширине цели (ширина изображения * 1.2). Кроме того, установите выравнивание текста держателя на «центр» и край изображения на «авто».

Таким образом вы получили изображение, всегда центрированное внутри держателя.

Более важно: не использовать эффект() То же самое можно сделать с помощью анимации(), просто вызвать анимацию с {width: imagewidth * 1.2}. animate(), кажется, делает эффект «чище» без какого-либо рывка, потому что он не будет делать ничего больше, чем вы хотите (масштабируйте изображение).

эффекта() делает больше, он играет с позицией и вводит некоторые необходимо хелперы объекты

see example

0

Dr.Molle ... это близко, но масштаб происходит от верхнего центра, а чем средний центр .... хотя бы в FireFox на Windows.

Это дало мне о чем подумать, поэтому спасибо!