首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

层拖动的时候怎么控制层不超过浏览器右边缘

2012-03-31 
层拖动的时候如何控制层不超过浏览器右边缘?我这几天在做层拖动的时候碰到个问题,当层拖动到浏览器的最右

层拖动的时候如何控制层不超过浏览器右边缘?
我这几天在做层拖动的时候碰到个问题,当层拖动到浏览器的最右边和最下边时,浏览器会出现滚动条,向右延伸,怎么样能使层到了浏览器右端时,不能再继续向右拖动?

JScript code
<script language="javascript">var tmpObj;var relLeft,relTop;function layerMouseDown(obj){    tmpObj=obj    tmpObj.l=event.x-tmpObj.style.pixelLeft    tmpObj.t=event.y-tmpObj.style.pixelTop}function layerMouseMove(){    if(tmpObj!=null)    {            tmpObj.setCapture()        tmpObj.style.left = event.x-tmpObj.l        tmpObj.style.top = event.y-tmpObj.t    }}function layerMouseUp(){    if(tmpObj!=null)    {        tmpObj.releaseCapture()        tmpObj=null    }}</script>

然后我的层代码为:
<div id="enterLayer" onmousedown="layerMouseDown(this)" onmousemove="layerMouseMove() " onmouseup="layerMouseUp()">层的具体内容</div>

我感觉应该在layerMouseMove()方法中加上对层位置的判断,可是不知道该如何判断。。。

[解决办法]
JScript code
function layerMouseMove(){    if(tmpObj!=null)    {            tmpObj.setCapture()        tmpObj.style.left = event.x-tmpObj.l        tmpObj.style.top = event.y-tmpObj.t    var left=parseInt(tmpObj.style.left);    var top=parseInt(tmpObj.style.top);        var maxLeft=parseInt(document.body.clientWidth)-parseInt(tmpObj.style.width);        var maxLeft=parseInt(document.body.clientHeight)-parseInt(tmpObj.style.height);    if(left<0){        tmpObj.style.left="0px";    }    if(left>maxLeft){        tmpObj.style.left=maxLeft+"px";    }    if(top<0){            tmpObj.style.top="0px";    }    if(top>maxTop){        tmpObj.style.top=maxTop+"px";    }    }} 

热点排行