我正在使用代码在滚动时将div粘贴在顶部,并且div到达顶部。

代码工作正常,但是导航到另一页时出现错误。

TypeError: Cannot read property 'offsetParent' of null


我的密码

render() {
  var startProductBarPos = -1;
  window.onscroll = function () {
    var bar = document.getElementById('nav');

    if (startProductBarPos < 0) startProductBarPos = findPosY(bar);

    if (window.pageYOffset > startProductBarPos) {
      bar.style.position = 'fixed';
      bar.style.width = '58.6%'
      bar.style.top = 0;
    } else {
      bar.style.position = 'relative';
      bar.style.width = '100%'
    }

  };

  function findPosY(obj) {
    var curtop = 0;
    if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent) {
      while (obj.offsetParent) {
        curtop += obj.offsetTop;
        obj = obj.offsetParent;
      }

      curtop += obj.offsetTop;
    } else if (obj.y)
        curtop += obj.y;

    return curtop;
  };

  return(
    <div className="trait_type_header" id="nav">
    </div>
  );
}


这行代码显示错误所在。

if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent) {


我认为导航到另一页时obj为空。如果是这种情况,我该如何解决?

最佳答案

尝试改变

if (typeof (obj.offsetParent) != 'undefined' && obj.offsetParent)




if (obj && obj.offsetParent)

07-28 05:57