為什么在判斷最大寬度的時候可以在offsetwidth-10,而在判斷最大高度的時候卻不能了呢
第一種可用判斷:
//?封裝的鼠標移動面板跟著移動的方法
function?fnMove(e,?posX,?posY)?{
var?oDrag?=?document.getElementById('loginPanel'),
//?光標的X/Y值減去光標距離面板的X/Y值?就是移動后面板所處的位置
l?=?e.clientX?-?posX,
t?=?e.clientY?-?posY,
//?可見區域寬度
winW?=?document.documentElement.clientWidth?||?document.body.clientWidth,
//?可見區域高度
winH?=?document.documentElement.clientHeight?||?document.body.clientHeight,
//?最大寬度限制
maxW?=?winW?-?oDrag.offsetWidth-10,?//?offsetWidth對象的可見寬度
//?最大高度限制
maxH?=?winH?-?oDrag.offsetHeight;?//?offsetHeight對象的可見高度
//?對left寬度的判斷
if?(l<0)?{
l=0;
}?else?if(l>maxW){
l=maxW;
}
//?對top高度的判斷
if(t<0){
t=10;
}else?if(t>maxH){
t=maxH;
}
//?改變面板的x和y值
oDrag.style.left?=?l?+?'px';
oDrag.style.top?=?t?+?'px';
}第二種不可用:
//?封裝的鼠標移動面板跟著移動的方法
function?fnMove(e,?posX,?posY)?{
var?oDrag?=?document.getElementById('loginPanel'),
//?光標的X/Y值減去光標距離面板的X/Y值?就是移動后面板所處的位置
l?=?e.clientX?-?posX,
t?=?e.clientY?-?posY,
//?可見區域寬度
winW?=?document.documentElement.clientWidth?||?document.body.clientWidth,
//?可見區域高度
winH?=?document.documentElement.clientHeight?||?document.body.clientHeight,
//?最大寬度限制
maxW?=?winW?-?oDrag.offsetWidth-10,?//?offsetWidth對象的可見寬度
//?最大高度限制
maxH?=?winH?-?oDrag.offsetHeight-10;?//?offsetHeight對象的可見高度
//?對left寬度的判斷
if?(l<0)?{
l=0;
}?else?if(l>maxW){
l=maxW;
}
//?對top高度的判斷
if(t<0){
t=0;
}else?if(t>maxH){
t=maxH;
}
//?改變面板的x和y值
oDrag.style.left?=?l?+?'px';
oDrag.style.top?=?t?+?'px';
}
2017-05-07
因為X是在框的右上方 右邊當然可以讓width-10 但是你上方就不能讓height-10了 你平行的offsetwidth-10 等于正好把屏幕往左邊縮小了10 但是你offsetheight-10是把屏幕從下往上拉了10px 那個X如果在右下方就完全沒問題 但是在右上方就出現bug了 不知道解釋清楚了沒 不懂再問吧