成長前端初學者
2018-03-02 22:32:26
tBar.onmousedown?=?function()?{
var?eve?=?getEvent();
moveable?=?true;
//4.事件屬性是指事件所引發的狀態及事件本身特有的一些特性。
//clientX事件返回當前事件被觸發時鼠標指針向對于瀏覽器頁面的水平坐標。
//pageX/pageY是鼠標相對于整個頁面的X/Y坐標,整個頁面也就是你整個網頁的全部,比如你的網頁很長,那么最大值就是他們了
//clientX/clientY是事件發生時鼠標在瀏覽器內容區域的X/Y坐標,就是用來顯示網頁的可視區域,也就是說需要拖動滾動條才能看到的不算,當窗口大小改變時,他倆的值也會改變。
mouseX?=?eve.clientX;
mouseY?=?eve.clientY;
toTop?=?parseInt(win.style.top);
toLeft?=?parseInt(win.style.left);
//事件二:移動鼠標事件
tBar.onmousemove?=?function()?{
if(moveable)?{
var?eve?=?getEvent();
var?x?=?toLeft?+?eve.clientX?-?mouseX;
var?y?=?toTop?+?eve.clientY?-?mouseY;
if(x?>?0?&&?(x?+?width?<?w)?&&?y?>?0?&&?(y?+?height?<?h)) ?{
win.style.left?=?x?+?"px";
win.style.top?=?y?+?"px";
}
}
}
//事件三:放下鼠標事件,注意這里是document,而不是tBar
document.onmouseup?=?function()?{
moveable?=?false;
}那個移動鼠標事件的那些的什么意思,var x = toLeft + eve.clientX - mouseX; var y = toTop + eve.clientY - mouseY; if(x > 0 && (x + width < w) && y > 0 && (y + height < h)) { win.style.left = x + "px"; win.style.top = y + "px";
1 回答
已采納

QQ_隨意
TA貢獻51條經驗 獲得超28個贊
var?x?=?toLeft?+?eve.clientX?-?mouseX; //toLeft是被點擊物體離瀏覽器頂部的top距離 //eve.clientX是當前鼠標位於這個瀏覽器窗口左上角的距離 //mouseX是你鼠標點擊時鼠標位於這個瀏覽器窗口左上角的距離 //比如你當前物體離瀏覽器左邊100px //你在150px的地方點擊進行拖拽 //var?x?=?100?+?150?-?150; //然後你向左拖拽1px的時候?x?=?100?+?149?-?150; var?y?=?toTop?+?eve.clientY?-?mouseY; //同理 if(x?>?0?&&?(x?+?width?<?w)?&&?y?>?0?&&?(y?+?height?<?h)) //防止x和y的值小於0或者大於瀏覽器寬度(高度) //防止你拖拽的時候把問題拉到瀏覽器外面
希望對你有幫助
添加回答
舉報
0/150
提交
取消