![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
php5 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Наваял тут небольшой скрипт по перемещению объекта по вертикали с позиционированием относительно других объектов скрипт вроде бы работает как нужно но при быстром перемежении начинает глючить. Может кто посмотрит и подскажет выход , но я так подозреваю что дело в том что скрипт не успевает перебрать массив объектов function minsize(obj)
![]() Исходный код Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
1) для кроссбраузерности надо пользоваться .top, .left, а не .pixelTop, ... и в конце писать +'px';
2) не вдавался далеко в алгоритм, но похоже, что ошибка в том, что Вы предполагаете, что событие наступит в каждой точке и приведёт к перестановке объектов. На самом деле, когда мышь проскакивает высоту рисунка без событий - тут и ошибка. Лечение: перепишите так, чтобы алгоритм не исходил из этого предположения, расставлял рисунки, как будто в первый раз взялся за это дело. -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
php5 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
12345c, не совсем понятно данное предложение «На самом деле, когда мышь проскакивает высоту рисунка без событий - тут и ошибка».
При каждом движении мыши я вычисляю точку наименьшего расстояния для каждого объекта поэтому по идеи я не могу проскочить высоту рисунка без события или я что то не так понял ? ![]() |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Когда событие не срабатывает, то по рисунку видно, что затем обрабатывается только один соседний рисунок, на который выполнилось условие "выше-ниже", а не пересматриваются позиции всех рисунков. Сделайте, чтобы расставлялись все. Например, 3-й быстро тащишь вверх, чтобы 1 и 2 не сдвинулись, потом медленно вниз. Прыгает 1 на место 2, а 2 не прыгает на место 3. Алгоритм должен проверять правильность положения всех. (Ввести массив занятости мест; если занимаемое занято - двигать занимающий куда следует. В общем, совсем по-другому устроить алгоритм.)
И надо позаботиться об невыделении selection при таскании. Как сделано здесь, например: http://js2.ru/example/JsPrimeryCode-56.htm Это сообщение отредактировал(а) 12345c - 3.3.2008, 11:39 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
php5 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
12345c, а как определить когда нужно начать двигать в низ 1 на место 2, а 2 на место 3 ?
Или это уже действия при конечном положении передвигаемого объекта т.е пропущен шаг когда 3 объекта оказывается на месте 2 и тот передвигается на место 3. |
|||
|
||||
12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Это уже чисто алгоритмический вопрос. Я бы сделал массив, хранящий целые числа (номера рисунков) и отображающий положение дел с расстановкой предметов. По нему определяете, что куда двигать, и тогда пропуск некоторых щonmousemove не страшен.
|
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |