Антон Е.
279 сообщений
#15 лет назад
Всем добрый день,пишу скриптик для создания визиток на JavaScript сделал пока не много и наткнулся на косяк(приложу скрин и ссылку на видео где более понятно)
В общем если нажать на квадратик и тянуть блок изменяет размер и когда отпускаешь клавишу на нем,то все работает как надо,если же отпустить курсор вне этого квадратика,то в этот раз все нормально,а в следующий при изменении размера разер изменяется на несколько писелей,а потом просто двигается див и курсор становиться перечеркнутым (точно так же как если сейчас попробовать тянуть за любой из квадратов на которые не повесил функцию) и отсюда начинаются баги. Никак не пойму в чем я ошибся,вроде все в обоих случаях выполняется одинаково. Буду очень благодарен любой помощи

ссылка на пример

ссылка на видео

скриншот
Максим Ф.
3195 сообщений
#15 лет назад
Прямоуголик двигается по полю, но размеров не меняет.
Mozilla Firefox 3.6

ps: и рекомендую взять что-то готовое от джиквери, проблем меньше будет.

upd: а нет, меняет размер, если тянуть за правый край. но всё работает корректно, за исключением квадратиков.
+ посмотрел я ваш код... точно лучше jquery использовать
Евгений О.
2989 сообщений
#15 лет назад
Надо ограничить зону перетаскивания родительским блоком. При выходе курсора за пределы родительского блока перестают обрабатываться события связанные с drag.
Правда, как обычно, все приходит в норму после щелчка мышью (т.е. drop).
Антон Е.
279 сообщений
#15 лет назад
Elosoft не родительского,если кнопка отпускается на родительском блоке(вне квадрата за который тащить) баг уже проявляется. Я не могу понять почему это происходит
AlekartRu jquery конечно хорошо,но хочется свое сделать,да и кода меньше будет как мне кажется
Евгений О.
2989 сообщений
#15 лет назад
Минут 10 игрался. Один раз получил Ваш баг. Предположительно у Вас начинается новая обработка до того, как закончилась предыдущая. Надо поставить заглушку на начало новых drag и drop, если не закончен полностью предыдущий процесс drag&drop.
зы то же и на измененме размеров
Антон Е.
279 сообщений
#15 лет назад
Проблема решилась очень чудно отключение драга убивает баг,вот код может кому интересно
document.ondragstart = function() { return false };
если из яваскрипта или
ondragstart="return false;"
если писать прямо в html
за помощь благодарю Эдуарда Филимонова