![]() |
Плавное увелечение картинки (HTML, CSS, JavaScript)
Народ вопрос такой: есть сайт __http://studionw.ru/ , на этой страничке:
__http://www.studionw.ru/port/index.htm есть эффект при наведении на миниатюрную картинку она становится немного больше, при этом остальные раздвигаются... На этом сайте это реализовано на флеше, как можно это сделать на связке html, css и javascript, чтобы это не тормозило даже на модеме (ну или не очень сильно тормозило) и эффект был приблизительно такой же. Спасибо:) |
Как один из возможных вариантов:
- таблица, в каждой ячейки по мини-картинки, - в onload тега body, загрузка соответствующих увеличенных картинок (хотя их можно использовать и как мини, установив соответствующий размер), - обработка событий картинок onmouseover и onmouseout, где меняем картинки (увеличиваем размер), изменяем размер ячейки, а плавность достигаем путем использования window.setInterval. |
Проблема в том что во флеше при растягивании изображение не теряет чёткости, т.к. векторное. Здесь же у тебя будет резкая потяря качества при уменьшении/увеличении. Я когда то делал похожее и мне не понравилось, пришлось сделать что при наведении мышки поверх просто показывалась чуть большая картинка.
|
да можно и одной обойтись :)
берем картинку 150*150, к примеру в таблице показываем ее с width/height 75*75, к примеру на onMouseOver или меняем атрибуты на 150 сразу, или последовательно 75-100-125-150 - получаем иллюзию роста картинки дешево и сердито :) |
Borlase,
Я вот замечал, что браузеры не умеют нормально уменьшать картинки. Во всяком случае для данных параметров не проверял, но для большего коэффицента уменьшения стороны получается просто убожище, по сравнению с тем, если уменьшить в Фотошопе. От авторав оффлайне было предложение, чтоб загонять 3-4 картинки разных размеров в gif. Но тоже есть свои недостатки в этом способе. Во-первых вручную такие запаришься делать, надо как-то автоматизировать процесс. А во вторых, gif для фоток, помоему, больше весить будет, чем jpeg. |
Цитата:
|
Hubbitus,
Я имел ввиду, что если полноченно фотку перегнать(не 256 цветов) в ГИФ, то у меня лично ГИФ получался больше так. |
по поводу уменьшения... ну, не знаю - я себе быстренько пример сделал, посмотрел - вродь бы приемлемо...
что до размеров - будет больше gif или jpeg - это от картинки зависит. у них разные алгоритмы сжатия, поэтому одна пикча будет больше весить гифкой, другая, наоборот - жпегом. тут нет однозначного ответа. |
Цитата:
А что касается уменьшения картинок браузерами, опять же ИМХО конечно, но помоему они весьма неплохо с этим справляются, вот, специально попробовал http://ru.bir.ru/imgtest/ Помоему весьма прилично смотрится во всех браузерах, смотрел в 3 основных. |
Цитата:
|
Цитата:
Но, даже они не рекомендуют это использовать нормально: Цитата:
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Ну зато то что я у тебя процитировал дает ответ на другое вполне ясно, что полноцветный ГИФ для фотки будет нааамного больше JPGа. Цитата:
|
хм, сделал, как было предложено во 2 посту, т.е. через яваскрипт, но никак не могу добится действия функции window.setInterval :idontnow: все ставлю, есть задержка, но потом сразу рисуется большая фотка....:( т.е. плавности не добится...
Вот пример сделал (без плавности, но с плавностью было тоже самое) __http://spb0969.ru/test/test.php |
Забирай... для IE работает точно, FF что-то не сильно... но дальше уже сам мучайся :)
Код HTML:
<html> |
Поправочка в догонку
Цитата:
Код:
<script language="JavaScript">Не буду просто изменять, если кто успел уже посмотреть, посему в догонку исправление, там нужно: Код:
setTimeout(window["reszdObj" + objname].My_reSize, window.timeout, objname);Код:
setTimeout("window.reszdObj" + objname + ".My_reSize('" + objname + "');", window.timeout);Ну и исправленный вариант в действии http://ru.bir.ru/imgtest/resizetest1.htm |
| Часовой пояс GMT +4, время: 20:43. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.