08.12.2008, 18:38
|
Интересующийся
|
|
Регистрация: 27.09.2008
Сообщений: 17
|
|
Изменение размеров в зависимости от картинки
Имеется: некоеторое подобии галереи, т.е. снизу каруселька с маленькими (уменьшенными) картинками, щелкаем на какую-либо и она занимает место в центральной рамке.
Необходимо сделать следующее: т.к. рамка заданных размеров, то нужно, чтобы: если размеры изображения меньше размеров рамки, то изображение просто вставляется по центру. А если изображение больше, то оно подгоняется под размеры рамки, т.е. принимает размеры рамки.
Как сделать - понять не могу *(( прошу помощи!!
|
|
08.12.2008, 19:33
|
Интересующийся
|
|
Регистрация: 27.09.2008
Сообщений: 17
|
|
для смены картинок использовал этот вариант: http://itsoft.ru/docs/web/c05_swap.php?&for_printing
предположения: использовать offsetHeight и offsetWeight для получения размеров картинки, которая сейчас замещается, а потмо сравниваем и устанавливаем переменные, которые будут иметь либо размер поля, либо размер картинки. Но вот как получить размеры картинки с помощью offsetHeight и offsetWeight и как их потом передать в <img...> - не могу понять *((
до этого, если нужно было получить размеры объекта, то получал их с помощью offsetHeight и offsetWeight обращаясь к нему через document.getElementById('...');
Последний раз редактировалось lanzs, 09.12.2008 в 18:39.
|
|
09.12.2008, 00:30
|
Интересующийся
|
|
Регистрация: 06.12.2008
Сообщений: 20
|
|
Цитата:
|
если изображение больше, то оно подгоняется под размеры рамки
|
А если они гораздо больше?... Картинка ужмется. Тут есть один прием (не знаю, подойдет или нет). Можно в <IMG> , где выводится картинка, явно задать высоту(height=n_px) ИЛИ ширину(width=n_px). В вашем случае, если каруселька снизу, то задавать надо высоту а ширину не указывать совсе. Тогда, браузер будет Выводить все картинки заданной высоты, а ширину высчитывать автоматически. Т. е. если по высоте картинка меньше, то браузер ее растянет до указанной. Если больше, то ужмет. При этом ширина будет расчитана автоматически с учетом пропорций.
Последний раз редактировалось PavelPetrov, 09.12.2008 в 01:10.
|
|
09.12.2008, 18:40
|
Интересующийся
|
|
Регистрация: 27.09.2008
Сообщений: 17
|
|
я уже думал об этом, но получается плохо, т.к. есть маленькие картинки, а если их растягивать, то смотрится не очень.
С размерами можно будет что-то придумать, т.е. как их сжимать...это я уже делал, но в php, а вот с java проблемы из-за недостатка знаний...
пока пробую в функции MM_swapImage() получать размеры изображения x и их изменять..но что-то не получается
|
|
10.12.2008, 00:13
|
Интересующийся
|
|
Регистрация: 06.12.2008
Сообщений: 20
|
|
Интересно, можно ли через javascript получить размеры изображения до его загрузки?
Покапался в браузерах (Internet Explorer, Opera, FireFox). Оказалось, что только FireFox "знает" реальные размеры загруженного изображения.:confused: , остальные знают только те, которые в теге <img> или если не указаны, то реальные.
Ничего лучше не придумал, как загружать изображение в невидимом элементе, брать его размеры, вычислять новые размеры (под рамку), изменять атрибуты width и height для видимого изображения и только потом загружать рисунок куда надо.
Черновичек того, что получилось можно посмотреть здесь. Для удобства и меньших вычислений взял квадратную рамку.
Последний раз редактировалось PavelPetrov, 10.12.2008 в 00:25.
|
|
10.12.2008, 00:48
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от PavelPetrov
|
Интересно, можно ли через javascript получить размеры изображения до его загрузки?
|
Телепатически чтоли?
|
|
10.12.2008, 19:25
|
Интересующийся
|
|
Регистрация: 06.12.2008
Сообщений: 20
|
|
Kolyaj,
Вместо того, чтобы задавать умные вопросы в ответ на глупые, пояснил бы возможно ли в Internet Explorer получить значения аналогичные naturalHeight и naturalWidth в FireFox.
|
|
10.12.2008, 20:13
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Я в таких случаях не выставляю ширину и высоту в стилях и беру offsetWidth/offsetHeight.
|
|
10.12.2008, 21:07
|
Интересующийся
|
|
Регистрация: 06.12.2008
Сообщений: 20
|
|
Цитата:
|
Я в таких случаях не выставляю ширину и высоту в стилях и беру offsetWidth/offsetHeight.
|
Для данной задачи (каруселька снизу), получим эффект дергания при изменении высоты следующей картинки. Пользователю придется постоянно "ловить" карусельку.
|
|
10.12.2008, 21:39
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Создайте еще одну картинку с тем же src. В DOM ее добавлять необязательно.
|
|
|
|