JS-缓冲运动-对联型悬浮框
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>缓冲运动2</title> <style type="text/css"> body{ height: 2000px; } .div { width: 100px; height: 100px; background-color: darkslateblue; position: absolute; right: 0; /*bottom: 0;*/ cursor: pointer; } </style> <script type="text/javascript"> window.onscroll= function(){ //1,给浏览器的滚动添加事件,onscollTop事件 var oDiv = document.getElementById('div'); var scrollTop = document.documentElement.scrollTop||document.body.scrollTop; // oDiv.style.top = (document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop+'px'; //可视区域的高度减掉物体高度再加上向上滚动的高度 starMove(parseInt((document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop)); //除以2以后就一直抖,就用parseInt取整 }; var timer = null; function starMove(iTarget){ var oDiv = document.getElementById('div'); 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.title = iTarget; document.getElementById('btn').value=oDiv.offsetTop; oDiv.style.top = oDiv.offsetTop+speed+'px'; } },30) } </script> </head> <body> <div class="div" id="div"></div> <input type="text" value="" id="btn" style="top: 0; right: 0; position: fixed;"/> </body> </html>
课程链接:智能社的开发教程:https://ke.qq.com/webcourse/index.html#course_id=152997&term_id=100174752&taid=766913655494053&vid=v14127nxshc
越努力,越幸运;阿门。