Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Задачка на рисование мозаики из фото |
Автор: KonstRuctor 26.4.2013, 16:58 | ||||
Привет всем! Есть задачка на выходные ![]() ДАНО: количество фотографий n = 5; ширина контейнера div = 520px; ПЕРЕМЕННЫЕ: фотографии лежат в папочке, при этом фотографии могут быть любых разумных размеров. как портретные, так и ландшафтные, 800*600, 500*800 и так далее. ЗАДАЧА: красиво вписать n фотографий по ширине div, чтобы они занимали всю ширину дива. РАЗМЕТКА:
Что я умею сейчас. С помощью гугла нашел и сам подправил такой скрипт:
Этот скрипт работает, но прижимает фото к левому краю, а я хочу заполнить див, то есть иметь плавающую высоту. Во вложении жипег того, что хочется получить – это я просто сверстал руками, а хочется чтобы это делал робот ![]() Есть идеи? Спасибо! |
Автор: sQu1rr 27.4.2013, 14:18 | ||||
Как-то так... не забывайте, что document.read выполнится раньше загрузки изображений (если они не в кэше), а значит их высота и длина не будут известны на время выполнения функции. (https://github.com/desandro/imagesloaded) Сам скрипт кстати не намного больше чем ваш, кол-во строк даже одинаково ![]()
|
Автор: KonstRuctor 29.4.2013, 12:58 |
Спасибо! Второй день разбираю скрипт. По уму, конечно, надо html отдавать с уже готовыми картинками, которые сделаны в размер. Столкнулся с такой штукой: иногда последнее фото перескакивает на следующую строку, видимо, из-за неверного округления дробных значений ширины / высоты... См. прикрепленный файл. Может быть, округлять все значения в меньшую сторону и выравнивать всю группу влево... Все равно идеальную точность растяжки по ширине не будет видно... Или будет? |
Автор: sQu1rr 29.4.2013, 19:56 |
не будет, и это еще и от бразуера зависит. поставьте в тех местах моего кода, где деление, умножение, Math.floor() и все будет так как вы хотите |