| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Масштабирование рисунков |
| Автор: Bog d`An 18.2.2006, 08:06 |
| Люди подскажите скрипт, который все рисунки больше указанного размера (по одной из сторон или по обееим) уменьшал их до нужного размера, а те к-е меньше не масштабировал, но оставлял столько же места как и для больших... |
| Автор: GIK 18.2.2006, 09:58 | ||||
А что это значит?
|
| Автор: 12345c 18.2.2006, 16:26 |
Значит, рамку таблицы надо, а рисунок в середину. Bog d`An, вообще, это всё очень зависит от дизайна и от того, задаются ли размеры рисунка заранее. Если нет, то вроде бы удобно, но изображения будут прыгать - сначала грузим большое, потом измеряем размеры, потом применяем логику. Таких скриптов не видел, написать не проблема (но часов 5 займёт), но главное, скрипт примера всё равно придётся переделывать под дизайн. Точнее, чисто скрипт кое-какой сделать - это минут 30 с отладкой. Но будет некрасиво. Представьте - грузим картинки в столбец в таблицу. Когда они все загрузятся, пробегаем с проверкой размеров. Затем делаем таблицу видимой. Её размеры скачком уменьшатся, текст снизу подвинется вверх. Для дизайна явно надо что-то красивее. И работа над этим займёт означенное время. |
| Автор: Alx 19.2.2006, 00:54 |
| 12345c, да это для форумов,я думаю, тут о дизайне речи не идет, каждая картинка - на новой строке. Bog d`An писал такую штуку, но IE only вроде, если надо, могу откопать ;) |
| Автор: Bog d`An 19.2.2006, 06:52 |
| максимальный размер задан зарание... |
| Автор: 12345c 19.2.2006, 09:40 |
| Максимальный - да, но у каждой картинки размеры свои, я про эти размеры. Если они не заданы в массиве, то сначала придётся вывести картинки, затем обрабатывать локальным скриптом. Короче, дайте html-код формата картинок в окончательном виде, который вы хотите видеть, а то это одни разговоры в ответ на разговоры. На этом примере быстро напишем скрипт. |
| Автор: Bog d`An 19.2.2006, 17:56 |
| http://bscheshir.pochta.ru/MyHTML.html |
| Автор: 12345c 20.2.2006, 02:30 | ||
| посмотрел, теперь слухай сюды: Показанный пример несколько отличается (противоречит) от постановки. Там видишь, есть низкие картинки-баннеры, т.е. высота минимальная не установлена, только ширина. Поэтому я хотел конкретный пример, а не постановку, которую потом 10 раз изменят. На базе этого написал некий общий скрипт, который будет годиться и для заданной высоты, и для незаданной. А также для правки картинок вообще где угодно - в текстах, в многостолбцовых таблицах перевью-картинок (thumbnails) - задавайте правильно ширину и высоту или только ширину, и скрипт сработает. Это не окончательный продукт, потому что делает характерный скачок из размеров таблицы в невидимом сосотоянии в размеры видимой таблицы. Так сказать, идея в полуголом виде. (Для кого эротика, для кого ...)
Демо здесь: http://js2.ru/example/JsPrimeryCode-61.htm Наконец, "заказывали" чтобы малые картинки занимали столько же места, как большие. Это сделать, очевидно, легко без скриптов, помещая каждую картинку в таблицу заданных минимальных размеров. Также замечу, что масштабирование затрагивает только те картинки, которые имеют имя name=... , которое может быть разным для разных групп. Поэтому масштабировать группы можно с разными параметрами. |
| Автор: Bog d`An 20.2.2006, 03:53 |
| 12345c, пасиба большое! Ну и +, чтобы было что в карман ложить пойду прикручивать... зы: моно я пока тему не буду закрывать?.. а то на жаваскрипте писал токмо 1 раз |
| Автор: Bog d`An 20.2.2006, 06:21 |
| А моно для каждой картинки отдельно автоматом как только загрузится - изменить размер? И ещё: можно ли ДО загрузки картинки задавать размер? |
| Автор: 12345c 20.2.2006, 14:19 | ||
| О, да, плюс карман не тянет. Можно. Вот скрипт с автоформатированием галереи по заданной ширине.
Размер каждой картинки? Можно, если вручную или в ПХП вычисляешь на сервере. Но тогда на сервере же стоит сразу задать размеры для тех, которые большие, в теге img, в атрибуте width. |
| Автор: 12345c 20.2.2006, 19:21 | ||
| Но в массив хотя бы ты можешь загнать или размеры, илирезультат выражения t.offsetWidth>widthGal, где t.offsetWidth - ширина каждой картинки? Тогда по мере появления загрузки у <img id=gal003 name=gal1 src=snow21.gif onload=corrDims(this)> берём его прописанный ид, извлекаем номер, вставляем в массив, применяем условие. Или проще - задаёшь не массив, а хеш (пары)
и выбор по galHash['gal003'] . Знаком с таким? Удобно прочитать в http://dklab.ru/chicken/nablas/38.html . |