js 右侧浮动层效果实现代码(跟随滚动)
投稿:mdxy-dxy
因为项目上有这样的需求,在网上也查了些东西,之前是想找个差不多类似的套用一下。后来发觉没有合适的,因时间紧迫就自己动手写了一个简单的 ,示例代码如下 兼容火狐和IE7+
实现代码一、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <!--***********开始*************--> <script type="text/javascript"> //<![CDATA[ var tips; var theTop = 200/*这是默认高度,越大越往下*/; var old = theTop; function initFloatTips() { tips = document.getElementById('floatTips'); moveTips(); }; function moveTips() { var tt = 50; if (window.innerHeight) { pos = window.pageYOffset } else if (document.documentElement && document.documentElement.scrollTop) { pos = document.documentElement.scrollTop } else if (document.body) { pos = document.body.scrollTop; } pos = pos - tips.offsetTop + theTop; pos = tips.offsetTop + pos / 10; if (pos < theTop) pos = theTop; if (pos != old) { tips.style.top = pos + "px"; tt = 10; } old = pos; setTimeout(moveTips, tt); } //!]]> </script> <style type="text/css"> .floatTips { position: absolute; border: solid 1px #777; padding: 3px; top: 250px; right: 5px; width: 30px; height: 300px; background: #cccccc; color: white; } .showDiv { position: absolute; border: solid 1px #777; padding: 3px; top: 250px; right: 5px; width: 300px; height: 300px; background: #cccccc; color: white; } </style> <script type="text/javascript"> function FunOnmouseUp() { var objFloatTips = $("floatTips"); var objActivityContext = $("activityContext"); objFloatTips.className = "showDiv"; objActivityContext.style.display = ""; } function FunMouseOut() { var objFloatTips = $("floatTips"); var objActivityContext = $("activityContext"); objFloatTips.className = "floatTips"; objActivityContext.style.display = "none"; } function $(objID) { return document.getElementById(objID); } </script> </head> <body onload="initFloatTips()"> <div id="floatTips" onmouseover="FunOnmouseUp()" onmouseout="FunMouseOut()" class="floatTips"> 最新的活动 <div id="activityContext" style="display: none"> 显示最新的活动 </div> </div> <!--**********结束***************--> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#F7F7F7"> <tr> <td height="2101"> </td> </tr> </table> </body> </html>
如果有时间的话 会稍作美化 然后加上动画效果 应该就能算是个不错的浮动隐藏层了。
方法二、
一、把以下代码插入<body></body>标签中:
<div id="FloatDIV" style="position: absolute;top: 0px; border-right: activeborder 1px solid; border-top: activeborder 1px solid; border-left: activeborder 1px solid; border-bottom: activeborder 1px solid;"> 浮动层示例:<br /> <a target="_blank" href="tencent://message/?uin=101535223&Site=https://www.jb51.net&Menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=1:101535223:3" alt="有事您说话"></a> </div>
二、把以下代码插到</body>标签之后,设置MarginLeft、MarginTop、Width、Heigth四个变量的值
<script language="javascript" type="text/javascript"> var MarginLeft = 30; //浮动层离浏览器右侧的距离 var MarginTop = 50; //浮动层离浏览器顶部的距离 var Width = 120; //浮动层宽度 var Heigth= 45; //浮动层高度 //设置浮动层宽、高 function Set() { document.getElementById("FloatDIV").style.width = Width; document.getElementById("FloatDIV").style.height = Heigth; } //实时设置浮动层的位置 function Move() { document.getElementById("FloatDIV").style.top = document.documentElement.scrollTop + MarginTop; document.getElementById("FloatDIV").style.left = document.documentElement.clientWidth - Width - MarginLeft; setTimeout("Move();",100); } Set(); Move(); </script>