Цитата:
|
когда интерпретатор не находит переменную e в функции Timeout он обращается к LexicalEnvironment move_wrap и там находит е ...
|
Цитата:
|
Цитата:
|
vadim5june, почитайте http://learn.javascript.ru/closures :)
|
cyber,
недочеты в Opere 11.6 http://video.yandex.ru/users/hostjs-mybb2011/view/17/ |
а, это я просто не обновил файлы на сервере=)
щас сек=) |
все теперь обновил
http://cyberua.16mb.com/drag&drop/ |
|
спасибо что напомнил =)
зделаю проще,пока перетаскивается элемент сброшу выделение для document |
жесть...
после добавление события Event.addListener(document,"selectstart",drag.select_st,false); перестает работать mouseup =) |
|
Цитата:
|
осталось анимацию допилить=)
|
Цитата:
|
блин вроде какае то анимация а напрягу=)
если использовать css3 анмацию нужно писать проверку на поддержку браузером (свои нюансы), а js не хочу(не то что лень писать, просто не хочу) |
бред какой , анимации не работает не в чем кроме хрома
.animate_for_old_postion{ -webkit-transition-property:left,top; -webkit-transition-duration:1s; -webkit-transition-timing-function:ease; -moz-transition-property:left,top; -moz-transition-duration:1s; -moz-transition-timing-function:ease; transition-property:left,top; transition-duration:1s; transition-timing-function:ease; -o-transition-property:left,top; -o-transition-duration:1s; -o-transition-timing-function:ease; } |
Цитата:
<!doctype hrml> <html> <head> <style type="text/css"> .animate_for_old_postion{ width: 100px; height: 100px; border: 1px solid #000; position: fixed; -webkit-transition-property:left,top; -webkit-transition-duration:1s; -webkit-transition-timing-function:ease; -moz-transition-property:left,top; -moz-transition-duration:1s; -moz-transition-timing-function:ease; -o-transition-property: left,top; -o-transition-duration: 1s; -o-transition-timing-function: ease; transition-property:left,top; transition-duration:1s; transition-timing-function:ease; } .animate_for_old_postion:hover { left: 100px; top: 100px; } </style> </head> <body> <div class="animate_for_old_postion"></div> </body> </html> |
Цитата:
а вот в этом скрипте нет=) тут можно глянуть http://cyberua.16mb.com/drag&drop/ |
cyber,
ну есть воть от Гвоздь => http://javascript.ru/forum/job/28764...tml#post183237 Или так Цитата:
|
Цитата:
решил что сделаю проверку. кстати этот код работает в опере 11.61 (поставил себе наконецто). в том коде что ты дал ссылку нужно юзать jQuery а принципиально пишу без них=) и кстати анимацию будет легко сделать так как у меня уже есть начальная позиция элемента и текущая, короче можно в отдельный файл выносить анимацию=) |
animate: function(){ var time = 1;//длительность анимации в секундах drag.obj.style.left = old.X+"px"; drag.obj.style.top = old.Y+"px"; cls.addClass(drag.obj,"animate_for_old_postion"); return (time*1000) - 100; } time = action.animate(); setTimeout(function(){ old.state() cls.removeClass(drag.obj,"animate_for_old_postion"); },time); |
cyber,
Я тьву и css дал -уже подстроенный под тьву |
Цитата:
|
не работает даже в хроме
<style type="text/css"> img[unselectable]{ transition-property:left,top; -webkit-transition-property:left,top; -moz-transition-property:left,top; -o-transition-property:left,top; -ms-transition-property:left,top; transition-duration: 0.06s; -webkit-transition-duration: 0.06s; -moz-transition-duration: 0.06s; -o-transition-duration: 0.06s; -ms-transition-duration: 0.06s; /* IE9+ */ } </style> кстати не работает по тому что не указан тип анимации=) Ладно пошел за пивом, а то скоро футбол=) |
Цитата:
Но появляются траблы - нун отслеживать скорость перемещения (даж без нажатия мыши) - ты её пульнул - а она при "нахождении над" - должна упасть(притянуться) в корзину или вернуться(после 0 скорости) т.е тестить попадание в корзину при наличии скорости даже при отсутствии нажатости Замечу, что css-анимация в Опере начинает запускаться через только минуту |
Пришел к выводу, о необходимости события: - объект в движении...
Извернутый способ - закрепить к mousedown-отому" объекту пиксельную прозрачку так: чтобы прозрачка изначально упиралась в верхний -нижний край экрана(высота:100%): - и отслеживать событие: скролл экрана. Есть плюс от этого:- перемещающийся объект будет вcегда в зоне видимости; Откреплять прозрачку при падении в корзину или возврате в исходную позицию |
Цитата:
up : function(evt){ var last_posX, last_posY, drop_elem, e, time; if(!drag.obj)return e = evt || event; action.mouseup = true; Event.removeListener(document,"mousemove", action.move_wrap,false); Event.removeListener(document,"mouseup", action.up,false); if(drop.lastElem){ drop_out.call(drop.lastElem, drag.obj); } unselect.remove(drag.obj); drag.obj.style.zIndex = ''; drag.status = false; drop_elem = action.serchAttr_drop(e.clientX,e.clientY);//проверка собтие mouseup произошло над drop блоком || нет if(drop_elem){ action.count++; elemnt_drop.call(drag.obj, drop_elem); if(action.auto != "stop" && param.auto_size) { action.width_height(drop_elem); } } else { old.parent.insertBefore (drag.obj,old.nextSibl); time = action.animate();//вот эта функция и timeout есть решение=) setTimeout(function(){ old.state() cls.removeClass(drag.obj,"animate_for_old_postion"); },time); }; }, animate: function(){ var time = 1;//длительность анимации в секундах drag.obj.style.left = old.X+"px"; drag.obj.style.top = old.Y+"px"; cls.addClass(drag.obj,"animate_for_old_postion"); return (time*1000) - 100; }, |
но начинаются какие траблы с работай везде кроме хрома=)
|
Часовой пояс GMT +3, время: 05:29. |