我使用一下两种方法实现了 仿锚点定位动画效果,在卓系统中没问题但在IOS中定位位置不准确了,是否存在兼容性问题?
相关代码
//获取元素的绝对位置
function getElementTop(element){
var actualTop = element.offsetTop;
var current = element.offsetParent;
while (current !== null){
actualTop += current.offsetTop;
current = current.offsetParent;
}
return actualTop;
}
//锚点定位动画效果
function scrollTo(y, duration) {
/*y:目标纵坐标,duration:时间(毫秒)*/
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
var distance = y - scrollTop;/*结果大于0,说明目标在下方,小于0,说明目标在上方*/
var scrollCount = Math.ceil(duration / 10);/*10毫秒滚动一次,计算滚动次数*/
var everyDistance = distance / scrollCount/*滚动距离除以滚动次数计算每次滚动距离*/
for (var index = 1; index <= scrollCount; index++){ /*循环设置scrollBy事件,在duration之内,完成滚动效果*/
setTimeout(function () { window.scrollBy(0, everyDistance) }, 10 * index);
}
}
期待大神帮我看看其中原委,感激不尽