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

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日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料