[Quote=引用 2 楼 wuyq11 的回复:]
div漂浮
var ww="窗口"宽度;
var wh="窗口"高度;
function moveWindow(winname)
{
var h1 = document.body.clientHeight;
var h2 = document.documentElement.clientHeight;
var isXhtml = (h2 <=h1&&h2!=0)?true:false;
var body = isXhtml?document.documentElement:document.body;
var o=document.getElementById(winname);
var lf=(body.clientWidth-ww)/2-50;
o.style.left=lf+"px";
o.style.top=(document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop) +
((document.documentElement.clientHeight == 0)?document.body.clientHeight:document.documentElement.clientHeight)
-wh-200+'px';
if(o.style.display=="")
setTimeout("moveWindow('"+winname+"')",20);
}
function closewindow()
{
document.getElementById("login").style.display="none";
document.getElementById("opwindow").style.display="none";
}
function overclose(o)
{
o.style.backgroundColor="#F6F2EA";
o.style.color="#F10000";
}
function outclose(o)
{
o.style.backgroundColor="#D4D0C8";
o.style.color="#000000";
}
http://topic.csdn.net/u/20090224/15/a7418578-70dd-495e-a90f-5f5f582ba867.html
[/Quote]
~~
<div id="ad" style="position:absolute"><img src="011.gif" border="0" usemap="#Map">
<map name="Map" id="Map">
<area shape="rect" coords="266,1,288,23" href="#" onclick= "shl()"/>
</map></a></div>
<script>
var x = 0,y = 0 //浮动层的初始位置,分别对应层的初始X坐标和Y坐标
var xin = true, yin = true //判断层的X坐标和Y坐标是否在在控制范围之内,xin为真是层向右移动,否则向左;yin为真是层向下移动,否则向上
var step = 1 //层移动的步长,值越大移动速度越快
var delay = 15 //层移动的时间间隔,单位为毫秒,值越小移动速度越快
var obj=document.getElementById("ad") //捕获id为ad的层作为漂浮目标
function floatAD() {
var L=T=0 //层移动范围的左边界(L)和上边界(T)坐标
var R= document.body.clientWidth-obj.offsetWidth //层移动的右边界
var B = document.body.clientHeight-obj.offsetHeight //层移动的下边界
obj.style.left = x + document.body.scrollLeft //更新层的X坐标,实现X轴方向上的运动;document.body.scrollLeft为文档区域的滚动条向右拉的距离,以保证在滚动条右拉时层仍在可见范围内
obj.style.top = y + document.body.scrollTop //更新层的Y坐标,实现Y轴方向上的运动;document.body.scrollTop为文档区域的滚动条向下拉的距离,以保证在滚动条下拉时层仍在可见范围内
x = x + step*(xin?1:-1) //通过判断层的范围决定层在X轴上的运动方向
if (x < L) { xin = true; x = L} //层超出左边界时的处理
if (x > R){ xin = false; x = R} //层超出右边界时的处理
y = y + step*(yin?1:-1) //通过判断层的范围决定层在Y轴上的运动方向
if (y < T) { yin = true; y = T } //层超出上边界时的处理
if (y > B) { yin = false; y = B } //层超出下边界时的处理
}
var itl= setInterval("floatAD()", delay) //每delay秒执行一次floatAD函数
obj.onmouseover=function(){clearInterval(itl)} //层在鼠标移上时清除上面的间隔事件,实现层在的鼠标移上时停止运动的效果
obj.onmouseout=function(){itl=setInterval("floatAD()", delay)} //层在鼠标移开时开始间隔事件,实现层在的鼠标移开时继续运动的效果
function shl(){
eval("ad.style.display=\"none\";");
}
function moveWindow(winname)
{
var h1 = document.body.clientHeight;
var h2 = document.documentElement.clientHeight;
var isXhtml = (h2<=h1&&h2!=0)?true:false;
var body = isXhtml?document.documentElement:document.body;
var o=document.getElementById(winname);
var lf=(body.clientWidth-ww)/2-50;
o.style.left=lf+"px";
o.style.top=(document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop) +
((document.documentElement.clientHeight == 0)?document.body.clientHeight:document.documentElement.clientHeight)
-wh-200+'px';
if(o.style.display=="")
setTimeout("moveWindow('"+winname+"')",20);
}
function closewindow()
{
document.getElementById("login").style.display="none";
document.getElementById("opwindow").style.display="none";
}
function overclose(o)
{
o.style.backgroundColor="#F6F2EA";
o.style.color="#F10000";
}
function outclose(o)
{
o.style.backgroundColor="#D4D0C8";
o.style.color="#000000";
} http://topic.csdn.net/u/20090224/15/a7418578-70dd-495e-a90f-5f5f582ba867.html