<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title></title> <style> #div1{ width:100px; height:150px; background:red; position:absolute; right:0; bottom:0; } </style> <script> 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));//使用parseInt是防止可能出现除2之后出现.5情况,导致悬浮框上下抖动。 }; var timer=null; function startMove(iTarget) { var oDiv=document.getElementById('div1'); clearInterval(timer); timer=setInterval(function (){ var speed=(iTarget-oDiv.offsetTop)/4; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(oDiv.offsetTop==iTarget) { clearInterval(timer); } else { document.getElementById('txt1').value=oDiv.offsetTop; oDiv.style.top=oDiv.offsetTop+speed+'px'; } },30); } </script> </head> <body style="height:2000px;" > <input type="text" id="txt1" style="position:fixed; right:0; top:0;"/> <div id="div1"></div> </body> </html>
效果图:
(41)JS运动之右侧中间悬浮框(对联悬浮框)
时间: 2024-11-05 18:42:29