為什么在判斷最大寬度的時(shí)候可以在offsetwidth-10,而在判斷最大高度的時(shí)候卻不能了呢
第一種可用判斷:
//?封裝的鼠標(biāo)移動(dòng)面板跟著移動(dòng)的方法 function?fnMove(e,?posX,?posY)?{ var?oDrag?=?document.getElementById('loginPanel'), //?光標(biāo)的X/Y值減去光標(biāo)距離面板的X/Y值?就是移動(dòng)后面板所處的位置 l?=?e.clientX?-?posX, t?=?e.clientY?-?posY, //?可見區(qū)域?qū)挾?winW?=?document.documentElement.clientWidth?||?document.body.clientWidth, //?可見區(qū)域高度 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'; }
第二種不可用:
//?封裝的鼠標(biāo)移動(dòng)面板跟著移動(dòng)的方法 function?fnMove(e,?posX,?posY)?{ var?oDrag?=?document.getElementById('loginPanel'), //?光標(biāo)的X/Y值減去光標(biāo)距離面板的X/Y值?就是移動(dòng)后面板所處的位置 l?=?e.clientX?-?posX, t?=?e.clientY?-?posY, //?可見區(qū)域?qū)挾?winW?=?document.documentElement.clientWidth?||?document.body.clientWidth, //?可見區(qū)域高度 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
因?yàn)閄是在框的右上方 右邊當(dāng)然可以讓width-10 但是你上方就不能讓height-10了 你平行的offsetwidth-10 等于正好把屏幕往左邊縮小了10 但是你offsetheight-10是把屏幕從下往上拉了10px 那個(gè)X如果在右下方就完全沒問題 但是在右上方就出現(xiàn)bug了 不知道解釋清楚了沒 不懂再問吧