层的拖动:鼠标mousedown之后,使层和鼠标联在一起移动,up时改变层的位置顺便使鼠标和层分开。我现在知道如何移动层,其余的怎么做
window.event.srcElement.setCapture();
window.event.srcElement.releaseCapture();
http://www.webucn.com/zz/nbw_v3/
看这个窗口拖动,十分流畅,有一个关键的问题就是秋水用上面的方法解决的。
过程这样:onmousedown时,获取鼠标在屏幕上的位置,同时setCapture(),onmouseup时,releaseCapture();。关键的过程在于onmousemove,首先判断event.button是否等于1,不等于,返回;如果等于,即时判断鼠标当前位置,然后要得出与onmousedown时的差值,窗口的实际位置加上这个差值重新定位。
楼主:试试这个
<style>
.drag{position:relative;cursor:hand}
</style>
<script language="JavaScript">
var dragapproved=false
var eventsource,x,y
function move()
{
if (dragapproved) //改变被拖动元素在页面上的位置
{
eventsource.style.pixelLeft=temp1+event.clientX-x
eventsource.style.pixel=temp2+event.clientY-y
return false
}
}
function drags()
{
if (!document.all)
return
if (event.srcElement.className=="drag") //捕捉鼠标和被拖动元素的当前位置
{
dragapproved=true
eventsource=event.srcElement
temp1=eventsource.style.pixelLeft
temp2=eventsource.style.pixel
x=event.clientX
y=event.clientY
document.onmousemove=move
}
}
document.onmousedown=drags //鼠标左键按下时,准备拖动
document.onmouseup=new Function("dragapproved=!dragapproved")//鼠标左键放开时,拖动停止
</script>
<span style="font-family:DextorOutD;font-size: 9pt">
<input type=button value="drag me" class=drag>
</span>