桃仁核桃露 2022-09-21 13:38 采纳率: 100%
浏览 470
已结题

html window滚动 Uncaught TypeError: Cannot read properties of undefined (reading 'top')

问题遇到的现象和发生背景

页面上下滚动,所写的动画代码在控制台显示错误

用代码块功能插入代码,请勿粘贴截图
function animateF(divTop,className){
    scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
    var divTopx = $("." + divTop);
    var divH = $("." + divTop).height();
    if($(document).scrollTop() > divTopx.offset().top /5*4){
        divTopx.addClass(className)
    }
    if($(document).scrollTop() >  divTopx.offset().top + divH || $(document).scrollTop() == 0){
        divTopx.removeClass(className)
    }
}
window.addEventListener("scroll",function(){
    animateF("goodList","hover");
    animateF("zigeBox","hover");
    animateF("bigtitle","hover");
    animateF("zhegnshu","hover");
    animateF("zigePhone","hover");
    animateF("liucBox.phoneShow","hover");
    animateF("theGood","hover");
},false);

运行结果及报错内容

滚动控制台报错,显示top未定义

  • 写回答

1条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-09-21 13:43
    关注

    offset().top是jQuery的方法,需要引入jQuery才能使用,它获取的是你绑定元素上边框相对于文档顶端的偏移量,我们可以吧文档理解成一幅图,这幅图包含了html,html内容越多图越长,浏览网页时,就是透过透明的玻璃(视窗)在看这幅画。

    offsetTop是原生js的方法,它获取的是你绑定元素上边框相对离自己最近且position属性非static的祖先元素的偏移量。

    有帮助的话采纳一下哦!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 已采纳回答 9月21日
  • 创建了问题 9月21日