ios与安卓在元素定位绝对位置的问题上是不是有兼容性问题,我已经解决了部分但IOS上定位还是与安卓不一致

新手上路,请多包涵

我使用一下两种方法实现了 仿锚点定位动画效果,在卓系统中没问题但在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);
        }
        
    }

期待大神帮我看看其中原委,感激不尽

阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题