Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Как в JcanvaScript остановить в нужный момент перетягивание (https://javascript.ru/forum/library-toolkit-framework/35218-kak-v-jcanvascript-ostanovit-v-nuzhnyjj-moment-peretyagivanie.html)

gh321 04.02.2013 01:04

Как в JcanvaScript остановить в нужный момент перетягивание
 
Привет!
Народ кто пользуется JcanvaScript,
если например, point.x<0(картинка начинает выходить за приделы канваса при перетягивании этой же картинки по канвасу), нужно остановить перетягивание,как это сделать?
jc('#myimg').id('myimg').draggable({
	object: 'self',	
	drag: function(){
		point=jc('#myimg').id('myimg').position(); 
		document.getElementById('info').innerHTML=point.x;
		if(point.x<0){
		
		//this.draggable('stop');
		//return;
		//jc.pause();		
		}
		else{		
		//jc.start('firstCanvas',true);
		}
		}
});

Если
jc.pause(); //перетягивание останавливается,но потом нельзя снова перетягивать эту картинку
this.draggable('stop');//если так то перетягивание не прекращается

Другие варианты тоже не работают.

Deff 04.02.2013 02:58

Цитата:

Сообщение от gh321
jc.pause(); //перетягивание останавливается,но потом нельзя снова перетягивать эту картинку

$("#el").draggable({ drag:function(event, ui){
  if(ui.position.left>0 && ui.position.left < leftMax && ui.position.top>0 && ui.position.top < topMax){
    ui.position.left = x;
    ui.position.top = y;
  }
}});

gh321 05.02.2013 02:35

Deff Вы имеете виду использовать jQuery?
В самой JcanvaScript нельзя останивть перетягивание в нужный момент?

gh321 07.02.2013 21:34

Можно ли вообще объединить две эти библиотеки jQuery и JcanvasScript( и нужно ли это для пятнашек с перетягиванием)?
например так (другие варианты тоже не проходят)
Код:

//JcanvasScript
jc.image(img,0,0).id('myimg');
//jQuery
$(jc('#myimg')).draggable({ drag:function(event, ui){

}});


a_l 10.02.2013 18:57

Цитата:

В самой JcanvaScript нельзя останивть перетягивание в нужный момент?
Пробовали
return false;
?

gh321 12.02.2013 01:45

Цитата:

Сообщение от a_l (Сообщение 232926)
Пробовали
return false;
?

Пробовал
jc('...').id('..).draggable({
		
	drag: function(){
		point=jc('#im').id('im').position(); 
		
		if(point.x<0){
		
		
		return false;
				
		}
		
		}
});


не работает ...

DjDiablo 12.02.2013 02:59

С имитируйте mouseUp для канваса.
тогда скрипт поведёт себя так как будто пользователь отпустил мышь.
Думаю это самый безопасный для вас вариант.

вообще библиотека спроектирована из рук вон плохо.Dragable это не компонент и тем более не плагин, это функция инциализирующая переменные, при этом сами обработчики участвующие в перетаскивании, находятся в общей централизованной куче (монструозном методе canvas.frame). Логика в целом очень размазанной получилась.

посмотрел пару минут только, краем глаза, завтра по подробнее погляжу на это чудо :)
Если что нарою, я свистну :)

Имитируйте событие mouseUp пока, вероятно этого будет достаточно.
функция dispatchEvent вам в помощь.


Часовой пояс GMT +3, время: 18:50.