![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ciber SLasH |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Сваял скрипт, в котором пробегает шарик (gif-ка) по графику синуса.
Но вся проблема в том, что он не работает в IE, а работает в Опере. Нужно чтоб и там и сям работало.
И ещё вопрос: а как вычислять координаты gif-точки, если ей поставить свойство position в relative и запихнуть DIV в таблицу ? Если было бы так:
Это сообщение отредактировал(а) Ciber SLasH - 26.5.2005, 15:03 Присоединённый файл ( Кол-во скачиваний: 6 )
d.gif |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Лично мне в ИЕ6 (SP2) писалось, что сценарий может тормозить процессов.
Попробуй область уменьшить... Затем куча мелких недочетов:
div`у пропиши id="test", и по document.getElementById('test') вычисляй... |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Всё-таки так и не смог нормально сделать отрисовку при задании position: relative...
Подправил чють скрипт:
Как бы теперь сделать правильную отрисовку при position: relative ? Need Help !! ЗЫ: количество шагов уменьшил (step = <...> * 10) в 10 раз, глобальные переменные испоьзуются в 2-х функциях (не переписывать же их 2 раза), точки с запятой -- нафик, и без них всё работает (знаю что могут обламаться всякие парсеры, но до этого мне ещё далеко, а я люблю минимализм -- меньше символов -- меньше вес страницы). Это сообщение отредактировал(а) Ciber SLasH - 26.5.2005, 15:06 |
|||
|
||||
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
А вне функции их не задать? Тогда они будут глобальными...
С такими задатками далеко не уйдешь Это сообщение отредактировал(а) Aliance - 26.5.2005, 13:33 |
||||
|
|||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Выяснил, что при position: relative координата left отсчитывается от предыдущего элемента, поэтому приходится при вычислении новой left-координаты рисунка отнимать занимаемую ширину предыдущих рисунков. Т.е. left: x - (i * <ширина рисунка>).
C учётом этого переписал скрипт и отредактировал предыдущий пост, дабы не выкладывать снова тот же скрипт в новом посту. Но появились другие баги (для понимания при отладке раскомментировать коммент в функции putPixel): 1) не понятно почему document.getElementById('point' + i).offsetParent.tagName указывает на BODY а не на DIV 2) теперь график рисуется правильно, но только до 56-го прохода, дальше offsetLeft контейнера принимает отрицательные значения, что и приводит к неправильной отрисовки. Хотя по идеи положительные значения offsetLeft контейнера должны продолжаться вплоть до конца DIV-а... ещё интересные вещи творятся если: 1) из xx не вычитать (i*14) 2) а в IMG поставить в стиле вместо left -- right |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
1) потому что offsetParent и parentNode это не одно и тоже, первый это блочный элемент с которого начинается отсчёт координат потомков, второе это родительский узел элемента.
2) посмотри это, наваял за пол часа: http://forum.vingrad.ru/index.php?act=ST&f=188&t=53487 -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Ciber SLasH |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
10x Sardarу за плоттер, при просмотре исходника я понял почему мой график глючил -- нужно было реализовать нормальную задержку через setInterval() и кой-чего подправить с позицией.
Я всё-таки оставил свой вариант графика (он более понятен). Вот переделанный скрипт (он лишь заточен на движение по синусу, остальное пока не нужно):
Если раскомментировать 45 строку, а в 54-й вместо оператора += поставить просто =, то вместо отрисовки графика будет движение по графику. Кстати этот скрипт есть модификация одной лабы на Паскале:
ЗЫ: хотел выделить += и = жирным стилем -- не получилось. Хоть и стоит:
Это сообщение отредактировал(а) Ciber SLasH - 27.5.2005, 18:29 |
||||||
|
|||||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |