| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как сделать прокрутку изображения? |
| Автор: ksicom 29.9.2005, 14:32 |
| Как сделать прокрутку изображения как на maps.google.com? И к тому же кроссбраузерную? |
| Автор: Aliance 29.9.2005, 15:14 |
| Прокрутку или увеличение (zoom)? И вообще там сделано на JAVA кажется... |
| Автор: ksicom 29.9.2005, 15:37 |
| прокрутку нет, там не на JAVA там вроде как-то в IFRAME сделано, а вот как понять не могу. не понятно, как механизм "двиганья" устроен. похоже, что документ в iframe много шире отображаемого окошка. Поэтому и кажется, что плавно движется. Но вот куда он подгружает изображения и как собственно устроена прокрутка не понятно... |
| Автор: Sardar 29.9.2005, 17:06 | ||||
По моему там не JS, в сорцах не разбирался. По идее ставишь скролируемый слой overflow: hidden, внутрь ложишь таблицу из картинок на абсолютной позиции, при этом таблица по площади раза в 4 больше площади скролируемого окошка. Двигаем мышой таблицу. Если окошком выходим за границы таблицы, то либо меняем сорцы на картинках и таблицу сдвигаем верёд(может моргать), либо добавляем строки и колонки, старые при этом удаляем(может тормозить). А вообще задача интересная) |
| Автор: Burrr 29.9.2005, 21:02 |
| если я не ошибаюсь, то на гугл.мэп при движении картинки возникают пустые области, которые заполняются с пом httpRequest, а для передвижения картинки они кажись используют таблицу, td-шки которой можно изменять и закрывать тем самым части карты. всё у них выстроено на JavaScript-e могу и ошибиться |
| Автор: Guest 9.10.2005, 13:43 | ||
| Вроде как написал. Собственно вот:
Если кто хочет посмотреть в действии, вот: http://ksicom.homeunix.net:8009/ksicom/zzz14.html Канал стрим и сервер P166 Тянуть медленно и ждать пока загрузится, т. к. одна проблема ещё не решена: Как сделать так, чтобы после того, как переношу картинку с левого (правого, верхнего, нижнего) фланга на противоположный она сначала загружалась, а потом только выдавалась. А то получается "прокрутка" старой картинки. И ещё просьба, покритикуйте пожалуйста, т. к. планируется использовать в реальном проекте И если можно поподробней, т. к. это второй код, написанный мною на JS в жизни. P.S. Тестировал на FF1.07 и IE5, IE6 |
| Автор: ksicom 9.10.2005, 13:47 |
| Это я был Забыл войти |
| Автор: Aliance 9.10.2005, 14:14 |
| Работает, но линии кривые, т.е. при движении искажаются. |
| Автор: ksicom 9.10.2005, 16:34 |
| Они не кривые Они просто подгружаются... Т.е. на место старых картинок ставятся новые. Проблема в этом и заключается, что я не знаю как бы так на время подгрузки заменить старую картинку на что-нибудь типа loading или просто пустую картинку src="" и применение к картинке ожидания onload почему-то не помогают |
| Автор: ksicom 10.10.2005, 00:21 | ||
| Вот теперь в самый раз Всё что надо куда надо загружается и пишет Loading Рабочая версия: http://ksicom.homeunix.net:8009/ksicom/zzz16.html И сам скрипт
Ну и самый последний вопрос в рамках этого скрипта: в maps.google этого нету, а я бы хотел Есть ли какая-нибудь возможность снизить приоритет загрузки данного объекта? Т. е. если пользователь резко рванул налево, чтобы все квадратики, которые он быстро прокручивает не грузились, а грузились сразу квадратики на которых он остановился.? Или можно как-нибудь отменить загрузку картинки? Единственное, что мне в голову приходит, грузить картинки (img.src="new src...") не сразу, а после какой-то паузы. Но если так делать, не знаю как отловить из текущего обработчика приход следующего события (т. е. как отловить, что во время паузы юзер всё же сдвинул мышь) |
| Автор: Sardar 10.10.2005, 17:05 | ||||||||||
Работает красиво, респект
К сожалению нет. Браузер может вообще ничего не грузить, пока картинка реально не покажеться пользователю, но из под скриптов этого нет.
Только src="", но некоторые браузеры, например Мозилла будут всё равно грузить картинку, тем самым забивая левый траф)
очень не хорошее свойство, пользователь будет думать что всё тормозит по чёрному
Onload на картинке уведомляет о загрузке, ну а события мыши не прерываються никогда, твой обработчик будет работать. В чём конкретно проблема? |