未捕获的 TypeError:无法读取 null 的属性“classList”
2014-11-17
15385
嗨,我正在尝试制作一个缩小的标题,我几乎让它工作了,但是我在 js 文件的这一部分不断收到上述错误
var cbpAnimatedHeader = (function() {
var docElem = document.documentElement,
header = document.querySelector( '.cbp-af-header' ),
didScroll = false,
changeHeaderOn = 300;
function init() {
window.addEventListener( 'scroll', function( event ) {
if( !didScroll ) {
didScroll = true;
setTimeout( scrollPage, 250 );
}
}, false );
}
function scrollPage() {
var sy = scrollY();
if ( sy >= changeHeaderOn ) {
var windowtab = $(window).width();
if (windowtab >= 1021)
{
classie.add( header, 'cbp-af-header-shrink' );
}
}
else {
classie.remove( header, 'cbp-af-header-shrink' );
}
didScroll = false;
}
function scrollY() {
return window.pageYOffset || docElem.scrollTop;
}
init();
})();
和
var classie = {
// full names
hasClass: hasClass,
addClass: addClass,
removeClass: removeClass,
toggleClass: toggleClass,
// short names
has: hasClass,
add: addClass,
remove: removeClass,
toggle: toggleClass
};
当我为 jQuery 添加一个模块时,我在 DNN 中让它工作了,但是当我将它添加到皮肤时,我最终得到了上述控制台错误
2个回答
脚本中的此行:
header = document.querySelector('.cbp-af-header')
@ MDN for document.querySelector()
它表示, 返回文档中具有该类的第一个元素 。
因此,您可能正在寻找
.querySelectorAll("selector/s")
:
document.querySelectorAll(".cbp-af-header");
@ MDN for document.querySelectorAll()
返回文档中提供的所有元素 (div 以case形式) 的列表 。
Jai
2014-11-17
我遇到了同样的问题。我意识到 IIFE 在 DOM 完全加载之前就执行了。如果你使用 jQuery,请尝试将其包装在 $(document).ready() 中
Elmuch
2014-12-31