我这个方法很简单,就是比较粗糙,光滑度也不是很好。
function xuanfuDiv(){
document.getElementById("xxx").style.top = Math.floor((document.documentElement.scrollTop + 200+document.getElementById("xxx").offsetTop)/2);
setTimeout("xuanfuDiv()",10);
}
我简单解释下代码,第一句就是修正div的top咯。
math.floor是向下取整,document.documentElement.scrollTop 是滚动条滚动的数值,offsetTop是div的不带px单位的top值,200是所要的位置
修正top的简单思路就是去div当前top和动态期望点的中点位置,然后一直取中点位置。逐步逼近,因为有向下取整,所以肯定会重合的。
第二句就简单了,没过10毫秒就调用一个xuanfuDiv这个函数不断修正div的top,搞定。
function xuanfuDiv(){
document.getElementById("xxx").style.top = Math.floor((document.documentElement.scrollTop + 200+document.getElementById("xxx").offsetTop)/2);
setTimeout("xuanfuDiv()",10);
}
我简单解释下代码,第一句就是修正div的top咯。
math.floor是向下取整,document.documentElement.scrollTop 是滚动条滚动的数值,offsetTop是div的不带px单位的top值,200是所要的位置
修正top的简单思路就是去div当前top和动态期望点的中点位置,然后一直取中点位置。逐步逼近,因为有向下取整,所以肯定会重合的。
第二句就简单了,没过10毫秒就调用一个xuanfuDiv这个函数不断修正div的top,搞定。