Mahnet
جمعه 08 مهر 1390, 11:36 صبح
عنوان : جابجایی اشیا در صفحه با ماوس
با سلام
شما می تونی از تابع drag توی زبان برنامه نویسی استفاده کنین و یا اگر مایل هستین خودتون برنامه نویسی کنین تا پایان این بخش با من باشین ...
الگوریتم برنامه :
1- از event های mousedown و mouseup و mousemove برای این برنامه استفاده کنین.
2- متغیری از نوع boolean تعریف کنین که اگر mousedown بود مقدارش true و اگر mouseup بود مقدارش false بشه.
3- زمانی که mousedown شد و متغیر boolean مقدارش false بود موقعیت X و Y ماوس رو از موقعیت left و top شی مورد نظر در صفحه کم کنین و در جایی ذخیره کنین.(این کار برای اینه که موقعیت ماوس رو زمانی که mousedown میشه نسبت به اون شی برای اولین لحظه داشته باشیم)
4- زمانی که می خواین یک شی رو جابجا کنین ابتدا متغیر boolean رو چک کنین که آیا mousedown هست یا نه اگر بود و اگر mousemove شد اونوقت موقعیت X و Y ماوس فعلی رو از مقدارهای ذخیره شده در مرحله سوم کم کنین تا موقعیت left و top فعلی شی مورد نظر به دست بیاد و اون ها رو set کنین ...
5- این الگوریتم با jQuery به شکل زیر هست....
var isMouseDown = false;
var X,Y;
$(document).ready(function() {
$('.window').mousedown(function(e){
if(!isMouseDown){
isMouseDown = true;
var objPos = $(this).offset();
X = (e.pageX - objPos.left);
Y = (e.pageY - objPos.top);
}
});
$('body').mousemove(function(e){
if(isMouseDown){
var objX = e.pageX-X;
var objY = e.pageY-Y;
$('.window').offset({ left: objX, top: objY });
}
});
$('.window').mouseup(function(e){
if(isMouseDown){
isMouseDown = false;
}
});
});
6- دقت کنین که اگر برنامه تون تحت وب هست حتما position شی مورد نظر از نوع absolute یا fixed باشه که در اینجا شی من یک div از کلاس window هست.
.window {
position : absolute;
}
7- این هم یک demo از این الگوریتم با jQuery ....
احتمالا الگوریتم های مناسب تری هم وجود داره ...
موفق باشین...
با سلام
شما می تونی از تابع drag توی زبان برنامه نویسی استفاده کنین و یا اگر مایل هستین خودتون برنامه نویسی کنین تا پایان این بخش با من باشین ...
الگوریتم برنامه :
1- از event های mousedown و mouseup و mousemove برای این برنامه استفاده کنین.
2- متغیری از نوع boolean تعریف کنین که اگر mousedown بود مقدارش true و اگر mouseup بود مقدارش false بشه.
3- زمانی که mousedown شد و متغیر boolean مقدارش false بود موقعیت X و Y ماوس رو از موقعیت left و top شی مورد نظر در صفحه کم کنین و در جایی ذخیره کنین.(این کار برای اینه که موقعیت ماوس رو زمانی که mousedown میشه نسبت به اون شی برای اولین لحظه داشته باشیم)
4- زمانی که می خواین یک شی رو جابجا کنین ابتدا متغیر boolean رو چک کنین که آیا mousedown هست یا نه اگر بود و اگر mousemove شد اونوقت موقعیت X و Y ماوس فعلی رو از مقدارهای ذخیره شده در مرحله سوم کم کنین تا موقعیت left و top فعلی شی مورد نظر به دست بیاد و اون ها رو set کنین ...
5- این الگوریتم با jQuery به شکل زیر هست....
var isMouseDown = false;
var X,Y;
$(document).ready(function() {
$('.window').mousedown(function(e){
if(!isMouseDown){
isMouseDown = true;
var objPos = $(this).offset();
X = (e.pageX - objPos.left);
Y = (e.pageY - objPos.top);
}
});
$('body').mousemove(function(e){
if(isMouseDown){
var objX = e.pageX-X;
var objY = e.pageY-Y;
$('.window').offset({ left: objX, top: objY });
}
});
$('.window').mouseup(function(e){
if(isMouseDown){
isMouseDown = false;
}
});
});
6- دقت کنین که اگر برنامه تون تحت وب هست حتما position شی مورد نظر از نوع absolute یا fixed باشه که در اینجا شی من یک div از کلاس window هست.
.window {
position : absolute;
}
7- این هم یک demo از این الگوریتم با jQuery ....
احتمالا الگوریتم های مناسب تری هم وجود داره ...
موفق باشین...