这个其实可以通过position:fixed;来直接固定元素的位置,这里是用JS缓冲运动来写的悬浮框,显示到右侧与浏览器保持居中位置。
<!doctype html> <html> <head> <meta charset="utf-8"> <title>悬浮框</title> <style> #div1{width: 150px; height: 150px; background: blue; position: absolute;right:0;bottom: 0;} </style> <script type="text/javascript"> window.onscroll = function() { var oDiv = document.getElementById('div1'); var scrollTop = document.documentElement.scrollTop||document.body.scrollTop; StartMove(parseInt((document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop)); } var timer = null; function StartMove(iTarget) { clearInterval(timer); timer = setInterval(function(){ var oDiv = document.getElementById('div1'); var speed = (iTarget-oDiv.offsetTop)/5; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(oDiv.offsetTop == iTarget) { clearInterval(timer); } else { oDiv.style.top = oDiv.offsetTop + speed + 'px'; } },30) } </script> </head> <body style = "height:2000px"> <div id = "div1"> </div> </body> </html>